Linux 行程管理
- 在 LINUX 中,每個執行的程式都稱為一個行程,每一個行程都分配一個 ID 號(pid,行程號),
- 每個行程都可能以兩種方式存在的,前臺與后臺,所謂前臺行程就是用戶目前的螢屏上可以進行操作的,后臺行程則是實際在操作,但由于螢屏上無法看到的行程,通常使用后臺方式執行,
- 一般系統的服務都是以后臺行程的方式存在,而且都會常駐在系統中,直到關機才才結束,
顯示系統執行的行程
ps 命令是用來查看目前系統中,有哪些正在執行,以及它們執行的狀況,可以不加任何引數,
ps [選項]
常用選項
? -a:顯示當前終端的所有行程資訊
? -u:以用戶的格式顯示行程資訊
? -x:顯示后臺進行運行的引數
? -e:顯示所有行程
? -f:全格式
ps 指令
ps [選項] | grep 服務名
- System V 展示風格
- USER:用戶名稱
- PID:行程號
- %CPU:行程占用 CPU 的百分比
- %MEM:行程占用物理記憶體的百分比
- VSZ:行程占用的虛擬記憶體大小(單位:KB)
- RSS:行程占用的物理記憶體大小(單位:KB)
- TT:終端名稱,縮寫 .
- STAT:行程狀態,其中 S-睡眠,s-表示該行程是會話的先導行程,N-表示行程擁有比普通優先級更低的優先級,R-正在運行,D-短期等待,Z-僵死行程,T-被跟蹤或者被停止等等
- STARTED:行程的啟動時間
- TIME:CPU 時間,即行程使用 CPU 的總時間
- COMMAND:啟動行程所用的命令和引數,如果過長會被截斷顯示
終止行程
若是某個行程執行一半需要停止時,或是已消了很大的系統資源時,此時可以考慮停止該行程,使用 kill 命令來完成此項任務
基本語法
通過行程號終止行程
kill [選項] 行程號
通過行程名終止行程,也支持通配符
killall 行程名稱
常用選項
? -9:表示強迫行程立即停止
查看行程樹
基本語法
pstree [選項]
常用選項
? -p:顯示行程的 PID
? -u:顯示行程的所屬用戶
服務(service)管理
服務(service) 本質就是行程,但是是運行在后臺的,通常都會監聽某個埠,等待其它程式的請求,比如(mysqld , sshd防火墻等),因此我們又稱為守護行程,是 Linux 中非常重要的知識點,
service 管理指令
基本語法
service 服務名 [start|stop|restart|reload|status]
細節說明
- 在 CentOS 7.0 后,很多服務不再使用
service,而是systemctl service指令管理的服務在/etc/init.d查看
查看服務器名
方式一
使用 setup 系統服務 就可以看到全部
setup

方式二
/etc/init.d 看到 service 指令管理的服務
ls -l /etc/init.d
服務的運行級別
Linux 系統有 7 種運行級別(runlevel):常用的是 級別 3 和 和 5
- 運行級別 0:系統停機狀態,系統默認運行級別不能設為 0,否則不能正常啟動
- 運行級別 1:單用戶作業狀態,root 權限,用于系統維護,禁止遠程登陸
- 運行級別 2:多用戶狀態(沒有 NFS),不支持網路
- 運行級別 3:完全的多用戶狀態(有 NFS),無界面,登陸后進入控制臺命令列模式
- 運行級別 4:系統未使用,保留
- 運行級別 5:X11 控制臺,登陸后進入圖形 GUI 模式
- 運行級別 6:系統正常關閉并重啟,默認運行級別不能設為 6,否則不能正常啟動
開機流程

CentOS7 后運行級別說明
在 /etc/initab 進行了簡化 ,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5
init 0
chkconfig 指令
通過 chkconfig 命令可以給服務的各個運行級別設定自 啟動/關閉chkconfig 指令管理的服務在 /etc/init.d 查看
基本語法
chkconfig --list[| grep xxx]
chkconfig 服務名 --list
chkconfig --level 5 服務名 on/off
案例演示 : 對 network 服務 進行各種操作, 把 network 在 3 運行級別,關閉自啟動
chkconfig --level 3 network off
systemctl 管理指令
基本語法
systemctl [start|stop|restart|status]
systemctl 指令管理的服務在 /user/lib/systemd/system 查看
systemctl 設定服務的自啟動狀態
查看服務開機啟動狀態,grep 可以進行過濾
systemctl list-unit-files [|grep 服務名]
設定服務開機啟動
systemctl enable 服務名
關閉服務開機啟動
systemctl disable 服務名
查詢某個服務是否自啟動的
systemctl is-enabled 服務名
細節說明
- 關倍訓者啟用防火墻后,立即生效,[telnet 測驗 某個埠即可]
systemtl:只是臨時生效,當重啟系統后,還是回歸以前對服務的設定,- 如果希望設定某個服務自啟動或關閉永久生效,要使用
systemctl [enable|disable]服務名
打開或者關閉指定埠
在真正的生產環境,往往需要將防火墻打開,但問題來了,如果我們把防火墻打開,那么外部請求資料包就不能跟服務器監聽埠通訊,這時,需要打開指定的埠
firewall 指令
打開埠
firewall-cmd --permanent --add-port=埠號/協議
關閉埠
firewall-cmd --permanent --remove-port=埠號/協議
重新載入,才能生效
firewall-cmd --reload
查詢埠是否開放
firewall-cmd --query-port=埠/協議
動態監控行程
top與ps命令很相似,它們都用來顯示正在執行的行程,top與ps最大的不同之處,在于top在執行一段時間可以更新正在運行的的行程,
基本語法
top [選項]
常用選項
? -d 秒數:指定 top 命令每隔幾秒更新,默認是3秒
? -i:使 top 不顯示任何閑置或者僵死行程
? -p:通過指定監控行程ID來僅僅監控某個行程的狀態
操作說明
? P:以 CPU 使用率排序,默認就是此項
? M:以記憶體的使用率排序
? N:以 PID 排序
? q:退出 top
監控網路狀態
查看系統網路情況
基本語法
netstat [選項]
常用選項
? -an:按一定順序排列輸出
? -p:顯示哪個行程在呼叫
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/294599.html
標籤:Linux
上一篇:Linux 網路配置
下一篇:Linux 磁盤磁區、掛載
