在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 顯示長列表
在終端中執行ps aux,
各列輸出字段的含義:
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 調用方法:
[root@localhost ~]# xkill
查詢pid
輸入:ps axu | grep phpstorm
查詢結果為 :root 2657 103 19.6 4714496 778216 ? Sl 09:19 30:04 /usr/local/share……………….
殺掉進程:kill -9 2657 [-9是直接殺死程序]