1. 程式人生 > >Liunx運維(九)-Liunx程序管理命令

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