天天看點

Linux檢視和結束程序指令詳解

在ubuntu中,終止一個程序或終止一個正在運作的程式,一般是通過 kill 、killall、pkill、xkill 等進行。

-------------------------------------------------------------------

先看兩個例子: 

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

鍵入指令:

pkill firefox 

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

先用ps指令來檢視該程序對應的PID。

鍵入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 

再用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 。

xkill 調用方法:若轉載請注明出處!若有疑問,請回複交流!

繼續閱讀