Linux系列命令——ps,kill詳解
(一)ps命令
(1)功能:
列出系統中當前執行的那些程序。ps命令列出的是當前那些程序的快照,就是執行ps命令的那個時刻的那些程序,如果想要動態的顯示程序資訊,就可以使用top命令。
linux上程序有5種狀態:
- 執行(正在執行或在執行佇列中等待)
- 中斷(休眠中, 受阻, 在等待某個條件的形成或接受到訊號)
- 不可中斷(收到訊號不喚醒和不可執行, 程序必須等待直到有中斷髮生)
- 僵死(程序已終止, 但程序描述符存在, 直到父程序呼叫wait4()系統呼叫後釋放)
- 停止(程序收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU訊號後停止執行執行)
ps工具標識程序的5種狀態碼:
- R 執行 runnable (on run queue)
- S 中斷 sleeping
- D 不可中斷 uninterruptible sleep (usually IO)
- Z 僵死 a defunct (”zombie”) process
- T 停止 traced or stopped
(2)語法: ps [options]
常見引數:
-
-A 列出所有的行程
-
-w 顯示加寬可以顯示較多的資訊
-
-au 顯示較詳細的資訊
-
-aux 顯示所有包含其他使用者的行程
(3)例子:
例1:顯示所有程序資訊
例2:顯示指定使用者資訊
例3: ps 與grep 常用組合用法,查詢特定程序
例4:將目前屬於您自己這次登入的 PID 與相關資訊列示出來。
# F 代表這個程式的旗標 (flag), 4 代表使用者為 superuser;
# S 代表這個程式的狀態 (STAT);
#UID 代表執行者身份
# PID 程序的ID號!底下的 PPID 則父程序的ID;
# C CPU 使用的資源百分比
# PRI指程序的執行優先權(Priority的簡寫),其值越小越早被執行;
# NI 這個程序的nice值,其表示程序可被執行的優先順序的修正數值。
# ADDR 這個是核心函式,指出該程式在記憶體的那個部分。如果是個執行
# 的程式,一般就是『 - 』
# SZ 使用掉的記憶體大小;
# WCHAN 目前這個程式是否正在運作當中,若為 - 表示正在運作;
# TTY 登入者的終端機位置囉;
# TIME 使用掉的 CPU 時間。
# CMD 所下達的指令名稱
例5:列出目前所有的正在記憶體當中的程式
• USER:該程序屬於那個使用者賬號的?
• PID :該程序的程序ID號。
• %CPU:該程序使用掉的 CPU 資源百分比;
• %MEM:該程序所佔用的實體記憶體百分比;
• VSZ :該程序使用掉的虛擬記憶體量 (Kbytes)
• RSS :該程序佔用的固定的記憶體量 (Kbytes)
• TTY :該程序是在那個終端機上面運作,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程式,若為 pts/0 等等的,則表示為由網路連線進主機的程式。
• STAT:該程式目前的狀態,主要的狀態有:
• START:該程序被觸發啟動的時間;
• TIME :該程序實際使用 CPU 運作的時間。
• COMMAND:所執行的指令
具體命令解釋如下:
1)ps a 顯示現行終端機下的所有程式,包括其他使用者的程式。
2)ps -A 顯示所有程式。
3)ps c 列出程式時,顯示每個程式真正的指令名稱,而不包含路徑,引數或常駐服務的標示。
4)ps -e 此引數的效果和指定"A"引數相同。
5)ps e 列出程式時,顯示每個程式所使用的環境變數。
6)ps f 用ASCII字元顯示樹狀結構,表達程式間的相互關係。
7)ps -H 顯示樹狀結構,表示程式間的相互關係。
8)ps -N 顯示所有的程式,除了執行ps指令終端機下的程式之外。
9)ps s 採用程式訊號的格式顯示程式狀況。
10)ps S 列出程式時,包括已中斷的子程式資料。
11)ps -t<終端機編號>
指定終端機編號,並列出屬於該終端機的程式的狀況。
12)ps u
以使用者為主的格式來顯示程式狀況。
13)ps x
顯示所有程式,不以終端機來區分。
最常用的方法是ps -aux,然後再利用一個管道符號導向到grep去查詢特定的程序,然後再對特定的程序進行操作。
(二)kill命令:
(1)功能:指定的資訊送至程式,用來顯示資訊和殺死程序。
(2)語法: kill [引數] 程序PID
(3)例子:
例1:顯示訊號名稱列表。kill -l
例2:殺死某一個叫程序 。kill 1626160