1. 程式人生 > >[測試]Linux檢視和結束程序命令詳解

[測試]Linux檢視和結束程序命令詳解

-------------------------------------------------------------------
先看兩個例子: 

例子一:結束某個程式,如Firefox     

鍵入命令:
pkill firefox 

例子二: 結束某個程序,如find           


先用ps命令來檢視該程序對應的PID。( ps 命令用於檢視當前正在執行的程序。
鍵入ps,顯示如下:
PID TTY TIME COMMAND 
285 1 00:00:00 -bash 
287 3 00:00:00 -bash 
289 5 00:00:00 /sbin/mingetty tty5 
290 6 00:00:00 /sbin/mingetty tty6

 
312 3 00:00:00 telnet bbs3 
341 4 00:00:00 /sbin/mingetty tty4 
345 1 00:00:00 find / -name foxy.jpg 
348 1 00:00:00 ps 

可以看到該程序對應的PID是345,現在使用kill命令來終止該程序。
鍵入:
# kill 345 

kill 命令用於終止程序

  例如: kill -9 [PID]

  -9表示強迫程序立即停止

  通常用ps 檢視程序PID ,用kill命令終止程序



再用ps命令檢視,就可以看到,find程序已經被殺掉了。
---------------------------------------------------------------------------
下面來了解相關命令:
 


一、檢視程序的命令 有ps、pstree、pgrep等:                                          

1、ps                                               
顯示程序資訊,引數可省略 
-aux    以BSD風格顯示程序 常用 
-efH    以System V風格顯示程序 
-e , -A 顯示所有程序 
a         顯示終端上所有使用者的程序 
x         顯示無終端程序 
u         顯示詳細資訊 
f          樹狀顯示 
w        完整顯示資訊 
l          顯示長列表
 

各列輸出欄位的含義:

USER         程序所有者
PID            程序ID 
PPID          父程序
%CPU        CPU佔用率
%MEM      記憶體佔用率
NI             程序優先順序。數值越大,佔用CPU時間越少
VSZ           程序虛擬大小
RSS            頁面檔案佔用
TTY            終端ID
STAT          程序狀態
+---D    不可中斷     Uninterruptible sleep (usually IO)
+---R    正在執行,或在佇列中的程序
+---S    處於休眠狀態
+---T    停止或被追蹤
+---Z    殭屍程序
+---W    進入記憶體交換(從核心2.6開始無效)
+---X    死掉的程序

+---<    高優先順序
+---N    低優先順序
+---L    有些頁被鎖進記憶體
+---s    包含子程序
+---+    位於後臺的程序組;
+---l    多執行緒,克隆執行緒  multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

PID:程序識別符號,系統為每一個程序分配一個識別碼,稱為PID。          

ps命令極為常用,其他命令還有:

2.pstree                                          
樹狀顯示程序資訊
-a 顯示完整命令及引數 
-c 重複程序分別顯示 
-c 顯示程序ID PID 
-n 按 PID 排列程序 

3.pgrep <程序名>                             
顯示程序的PID
-l 顯示程序名和程序PID 
-o 程序起始ID 
-n 程序終止ID 

二、結束程序的命令 有kill、pkill、killall、xkill等:                                      

kill [訊號程式碼] <程序PID>                  

根據PID向程序傳送訊號,常用來結束程序,預設訊號為 -9 
訊號程式碼,可取值如下:
-l [訊號數字] 顯示、翻譯訊號程式碼 
-9 , -KILL 傳送 kill 訊號退出 
-6 , -ABRT 傳送 abort 訊號退出 
-15 , -TERM 傳送 Termination 訊號 
-1 , -HUP 掛起 
-2 , -INT 從鍵盤中斷,相當於 Ctrl+c 
-3 , -QUIT 從鍵盤退出,相當於 Ctrl+d 
-4 , -ILL 非法指令 
-11 , -SEGV 記憶體錯誤 
-13 , -PIPE 破壞管道 
-14 , -ALRM 
-STOP 停止程序,但不結束 
-CONT 繼續執行已停止的程序 
-9 -1 結束當前使用者的所有程序 

pkill <程序名>                                 
結束程序族。如果結束單個程序,請用 kill

killall <程序名>                                
killall和pkill 應用方法差不多,也是直接殺死執行中的程式;如果您想殺掉單個程序,請用kill 來殺掉。

xkill                                                
在圖形介面中點殺程序。
當xkill執行時滑鼠指標變為骷髏圖案,哪個圖形程式崩潰一點就OK了。如果您想終止xkill ,就按右鍵取消。
比如當firefox 出現崩潰不能退出時,點滑鼠就能殺死firefox 。