在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 調用方法:若轉載請注明出處!若有疑問,請回複交流!