Liunx運維(九)-Liunx程序管理命令
文件目錄:
一、ps:檢視程序
二、pstree:檢視程序狀態樹
三、pgrep:查詢匹配條件的程序
四、kill:終止程序
五、killall:通過程序名終止程序
六、pkill:通過程序名種植程序
七、top:實時顯示系統中各個程序的資源佔用狀況
八、nice:調整程式執行時的優先順序
九、renice:調整執行中的程序的優先順序
十、nohup:使用者退出系統程序繼續工作
十一、strace:跟蹤程序的系統呼叫
十二、ltrace:跟蹤程序呼叫庫函式
十三、runlevel:輸出當前執行級別
十四、init:初始化Liunx程序
十五、service:管理系統服務
---------------------------------------分割線:正文--------------------------------------------------------
一、ps:檢視程序
1、ps #當前終端視窗的程序 PID程序識別符號 TTY程序所屬的終端控制檯 TIME程序所使用的總的CPU時間 CMD正在執行的命令列
2、ps -ef #使用UNIX格式輸出每個程序資訊 UID程序所屬UID,PPID父程序 C為cpu佔比 STIME程序開始時間 tty無法終端?本地tty1-6,網路pts/0
3、ps -ef | grep ssh #過濾程序
4、 ps aux #使用BSD格式顯示程序資訊 vsz虛擬記憶體量 stat該程序的狀態:r執行S中斷睡眠d不可中斷睡眠t偵測/停止z終止+前臺l多執行緒N低優先順序<高優先順序s程序領導者L頁面鎖定到記憶體
5、ps -u root # UNIX格式引數,使用使用者的相關程序
6、 ps -l #以詳細的格式顯示程序狀態 PRI:優先執行順序 NI-nice值 ADDR-程序在記憶體哪個部分,running一般是- SZ使用掉記憶體大小 WCHAN-目前程序是否執行中-正在運
7、ps -eH #-e顯示所有程序,-H引數顯示程序數,UNIX格式
8、ps axf|grep ssh #ax顯示所有程序,f顯示程序數,BSD格式
9、ps -eo '%P%y%x%c'|grep ssh #輸出指定欄位 通過man ps查詢欄位 p-ppid y-tty x-time c-command
10、ps -eo pid,user,args --sort pid | grep ssh #標準格式輸出指定欄位 ,並且根據某個欄位排序
二、pstree:檢視程序狀態樹
1、pstree #不指定程序pid號,或者不指定使用者名稱,即以init程序為根程序,顯示系統所有程序資訊
2、pstree root #顯示指定使用者的程序
3、pstree -u #顯示程序所屬的使用者組
三、pgrep:查詢匹配條件的程序
1、pgrep crond #顯示指定程序的pid,結合ps與grep功能
2、pgrep -u root #-u顯示指定root使用者的所有程序號
四、kill:終止程序
1、kill -l #顯示系統的所有訊號
2、kill -l SIGKILL #對訊號名與數字進行互換
3、常用訊號說明:
HUP(1):掛起-通常因終端掉線或使用者退出而引發
INT(2):中斷-通常是按下ctrl+c組合鍵來觸發
QUIT(3):退出-通常是按下ctrl+\組合鍵來觸發
KILL(9):立即結束程序的執行
TERM(15):終止-通常在系統關機時傳送
TSTP(20):暫停程序的執行-通常是按下ctrl+z組合鍵來觸發
4、kill 1474 #預設使用訊號15終止程序,常用
5、kill -9 1474 #強制關閉程序
6、kill -0 1474 #特殊訊號,用於程序檢查
五、killall:通過程序名終止程序
1、killall crond #終止定時服務程序
2、killall -w crond #-w會看到等待幾秒後結束命令操作
3、killall -u lulu nginx #終止lulu使用者的所有nginx程序
六、pkill:通過程序名種植程序
1、pkill crond #終止定時任務程序
2、pkill -t tty1 #-t殺死指定終端的程序(正在編輯/etc/rc.local)
3、pkill -u root #殺死指定使用者的所有程序
七、top:實時顯示系統中各個程序的資源佔用狀況
1、top #互動式命令
說明:
第一行:任務列隊資訊,同uptime命令的執行結果,包含:當前系統時間,系統執行時間,當前登入的使用者,1m/5m/15m的平均負載情況
第二行:tasks為任務(程序),系統共104個程序,其中執行中1個,103個休眠,0個stoped,0個僵死
第三行:cpu狀態:us-使用者空間佔比,sy-核心空間佔比,ni-改變過優先順序的程序佔比,id-空閒cpu佔比,wa-i/o等待佔比,hi-硬中斷佔比,si-軟中斷佔比,st-虛擬機器佔比
第四行:記憶體狀態:total-實體記憶體總量,used-使用中記憶體總量,free-空閒記憶體總量,buffers-緩衝的記憶體量
第五行:swap交換分割槽資訊:total-交換區總量,used-使用的交換區總量,free-空閒交換區總量,cached-快取的記憶體量
第六行:空行
第七行:各程序的狀態監控:PID-程序id,USER-程序所有者,
2、top再按照1:顯示多核不同cpu的資訊
3、top -b #以批處理模式顯示程序資訊,不停向下重新整理
4、top -c #使用引數-c顯示程序的完整路徑
5、top -d 3 #指定更新週期為3秒
6、top -n 2 #指定更新次數為2次後退出
7、top -p 1403 #-p指定程序號監控
8、top中b、z、x為高亮顯示,> 與 < 可以向右或向左改變排序列
八、nice:調整程式執行時的優先順序
1、nice #顯示當前系統預設的程式執行優先順序為0
2、nice nice #以預設值10來調整第二個nice命令執行的優先順序
3、nice nice nice #第二個nice命令執行優先順序的基礎上再加10,為20,但是最小程式執行優先順序為19
4、ps -l #檢視程序的優先順序(PRT越小優先順序越高,NI-優先值)
5、nice -n -10 vim test2 & 使用nice調整為-10
九、renice:調整執行中的程序的優先順序
renice -n -5 -p 1471 #-p指定值為2711的程序,調整NI值為5
十、nohup:使用者退出系統程序繼續工作
nohup命令將輸出重定向到終端,預設當前目錄的nohup.out檔案中,如果當前目錄檔案不可寫,則輸出重定向到$HOME/nohup.out檔案中
1、nohup ping www.baidu.com #當前終端已hang住,此時強制關閉當前終端,ping命令依然會在後臺執行
另一個ssh終端開啟
2、nohup ping www.baidu.com & #一般nohup配合&執行,讓程式直接後臺執行
十一、strace:跟蹤程序的系統呼叫
用於檢查一個應用程式所使用的系統呼叫以及它接收的系統資訊。strace會追蹤程式執行時整個生命週期,輸出每一個系統呼叫的名字、引數、返回值、消耗時間等,是高階運維和開發人員排查問題的殺手鐗
1、strace -tt -f /usr/bin/ping #-f跟蹤目標程序,以及子程序,-tt每一行前加上時間資訊
2、strace -tt -f -e trace=file /usr/bin/ping #trace=file只跟蹤與檔案操作有關的系統呼叫
3、strace -tt -f -e trace=file -p 1597 #-p跟蹤指定的程序
4、strace -c /usr/bin/ping #-c為程序所有系統呼叫做一個統計分析
5、strace -c -o tongji.log /usr/bin/ping #-o將strace結果輸出到檔案
6、strace -T /usr/bin/ping #-T將每個系統呼叫花費的時間打印出來,花銷在呼叫行最右邊的尖括號內
十二、ltrace:跟蹤程序呼叫庫函式
ltrace能跟蹤顯示呼叫了哪個庫函式,用法與strace非常相似
1、ltrace /usr/bin/ping #ltrace接需要檢測的命令語句
2、ltrace -p 1665 #-p跟蹤指定程序號
十三、runlevel:輸出當前執行級別
1、runlevel #檢視當前系統的執行級別
2、系統級別說明
0:停機
1:單使用者模式
2:無網路的多使用者模式
3:多使用者模式
4:未使用
5:圖形介面多使用者模式
6:重啟
十四、init:初始化Liunx程序
init為liunx下程序初始化工具,是所有Liunx程序的父程序,根據/etc/inittab建立Liunx程序
1、init 0 #關機
2、init 6 #重啟
十五、service:管理系統服務
service用於對系統服務進行管理:比如start、stop、restart、reload、status等,CentOs7裡被systemctl取代
1、service --status-all #顯示所有服務狀態
2、service crond stop #停止服務
3、service crond start #啟動服務
4、 service crond restart #重啟服務
5、service crond status #檢視服務狀態
&n