標籤:current linux report 資源 如何
在Linux中有哪些比較重要或常見的進程?
如何查看進程列表及使用資源情況?
如何殺死進程?
進程管理類命令:
pstree , ps , top , vmstat ,htop ,pmap
ps命令Process Status (report a snapshot of the current processes)
將某個時間點的進程運行情況選取下來
選項:
a:所有跟終端相關的進程
x:所有跟終端無關的進程
u:以使用者為中心顯示進程相關資訊
e:顯示所有進程
f:完整格式列表
F:顯示額外資訊
H:顯示進程層次關係
o:自訂欄位顯示
常用選項:
ps -l:查閱自己的bash程式
輸出:
F:進程標誌(process flags)說明這個進程的許可權
4:表示此進程的許可權為root
1:表示此子進程僅可進行複製,而無法實際執行
S:進程的狀態
R:運行中
S:睡眠,但可以被喚醒
D:不可被喚醒的睡眠狀態,通常這個進程可能在等待I/O的情況
T:停止狀態
Z:(zombie)僵死狀態
UID/PID/PPID:使用者ID/進程ID/父進程的進程ID
C:CPU使用率
PRI/NI:priority/nice的縮寫,表示優先順序
ADDR/SZ/WCHAN:記憶體相關
ADDR是kernel function表示進程在記憶體的那個部分
SZ表示進程消耗的記憶體
WCHAN表示進程是否在運行
TTY:相關的終端,沒有用"?"表示
CMD:command縮寫,造成此程式被觸發的命令
ps aux:查看所有運行程式
輸出:
USER:使用者帳號
%CPU:CPU使用率
%MEM:佔用實際記憶體比例
VSZ:虛擬記憶體大小 virtual memory size
RSS:非互動實體記憶體
STAT:
S:sleeping可中斷
D:不可中斷睡眠
R:運行或可運行
T:終止
Z:僵死
s:session leader
l:多線程進程
+:前台進程
N:低優先順序進程
<:高優先順序進程
START:改進程目前的狀態,與ps -l中的S標識相同
TIME:改進程時間使用CPU啟動並執行時間
COMMAND:改進程的實際命令
top命令 display Linux tasks
選項:
-d:後面跟秒數,就是整個進程解密更新的秒數,預設5秒
-b:以批次的方式執行top
-n:與-b搭配使用,表示執行幾次top
-p:指定某個PID來監測
快速鍵:
?:顯示在top當前可以輸入的按鍵命令
P:以CPU的使用資源排序顯示
M:以記憶體的使用資源排序
N:以PID排序
T:按該進程使用CPU時間累積排序
k:給某個PID一個訊號
r:給某個PID設定nice值
q:退出
輸出:
PID:進程ID
USER:使用者名稱
PR:priority 優先順序,越小層級越大
NI:nice值,與priority有關,也是越小越早被執行
%CPU:CPU使用率
TIME+:CPU使用時間的累加
注意:
top預設排序按%CPU
htop命令
需要額外安裝
pstree命令(display a tree of processes)
選項:
-A:各進程樹之間的串連以ASCII字元來串連
-U:各進程樹之間的串連以utf8字元來串連
-p:列出每個進程的PID
-u:列出每個進程的屬主
進程間的通訊:IPC
訊號:signal
1 SIGUP 讓進程不用終止,而重讀其設定檔
2 SIGINT 中斷正在啟動並執行進程,相當於ctrl+c
9 SIGKILL 殺死進程
15 SIGTERM 正常終止進程
17 SIGSTOP 相當於ctrl+z暫停一個進程
查看協助:man 7 signal
向其他進程傳遞訊號,使用kill
kill -signal pid
kill可以將訊號傳遞給某個job(%jobnumber)或者某個PID
Linux作業控制
jobs命令查看作業資訊
ctrl+z:將作業從前台送往後台,同時進程會停止執行
bg jobid 進程將在後台運行
fg %jobid 調回前台
kill %jobid 殺死作業
Linux進程管理