在linux
中,我們殺死某個程序,需要知道程序號(pid
)或者程序名,這樣就可以通過kill
命令來殺掉它。首先,我們可以通過ps ax
命令來檢視程序號
ps ax | grep firefox
我們以瀏覽器firefox
為例
(base) xugaoxiang@1070ti:~$ ps ax | grep firefox
23237 tty1 sl+ 0:06 /usr/lib/firefox/firefox
23535 pts/5 r+ 0:00 grep --color=auto firefox
由上面輸出,我們發現firefox
瀏覽器是乙個多程序的應用,程序號為23237、23368、23403、23422、23491都是相關程序。那我們要刪除對應程序,只需要執行
kill -9 $程序號
在firefox
這個示例中,如果要完全刪除,可以把5個相關程序都kill
或者只殺掉父程序,也就是程序號為23237的程序
kill -9 23237
其中-9是指定了傳遞給程序的訊號是9,即強制終止程序。關於linux
的訊號,可以通過kill -l
來檢視
(base) xugaoxiang@1070ti:~$ kill -l
1) sighup 2) sigint 3) sigquit 4) sigill 5) sigtrap
6) sigabrt 7) sigbus 8) sigfpe 9) sigkill 10) sigusr1
11) sigse** 12) sigusr2 13) sigpipe 14) sigalrm 15) sigterm
16) sigstkflt 17) sigchld 18) sigcont 19) sigstop 20) sigtstp
21) sigttin 22) sigttou 23) sigurg 24) sigxcpu 25) sigxfsz
26) si**talrm 27) sigprof 28) sigwinch 29) sigio 30) sigpwr
31) sigsys 34) sigrtmin 35) sigrtmin+1 36) sigrtmin+2 37) sigrtmin+3
38) sigrtmin+4 39) sigrtmin+5 40) sigrtmin+6 41) sigrtmin+7 42) sigrtmin+8
43) sigrtmin+9 44) sigrtmin+10 45) sigrtmin+11 46) sigrtmin+12 47) sigrtmin+13
48) sigrtmin+14 49) sigrtmin+15 50) sigrtmax-14 51) sigrtmax-13 52) sigrtmax-12
53) sigrtmax-11 54) sigrtmax-10 55) sigrtmax-9 56) sigrtmax-8 57) sigrtmax-7
58) sigrtmax-6 59) sigrtmax-5 60) sigrtmax-4 61) sigrtmax-3 62) sigrtmax-2
63) sigrtmax-1 64) sigrtmax
使用pgrep
命令,它是專門針對程序的grep
,相比常規,可以少敲一些字元,以pycharm
程序為例
(base) xugaoxiang@1070ti:~$ pgrep pycharm
3095
命令直接給出了程序號,非常的清爽。拿到了程序號,就可以直接kill -9 3095
了
使用pidof
命令獲取程序號,與pgrep
不同的是,pidof
必須指定程序的全名
(base) xugaoxiang@1070ti:~$ pidof firefox
24486 24439 24387 24335
(base) xugaoxiang@1070ti:~$ kill -9 24486
前面都是先找出程序號,然後使用kill
,現在該把他們兩整合起來了
pgrep pycharm | xargs kill -9
xargs kill -s 9
中的xargs
命令是用來把前面命令的輸出結果(pid
)作為kill -9
命令的引數,並執行該命令,kill -9
會殺掉指定程序
針對改進三,我們將kill -9
往前移,這樣可以省略掉命令xargs
kill -9 `pgrep pycharm`
pgrep pycharm
命令使用`包括起來,就是鍵盤上邊數字1旁邊的符號
使用pkill
命令,它是pgrep
和kill
的結合體
pkill -9 pycharm
使用killall
命令,它會傳送訊號到所有的指定程序,如果沒有明確訊號,預設的是sigterm
,也就是停止(termination
)。
killall -9 pycharm
killall
和pkill
是相似的,不過如果給出的程序名不完整,killall
會報錯。pkill
或者pgrep
只要給出程序名的一部分就可以終止程序。 Linux 殺死程序的N種方法
via linux下殺死程序的n種方法 把ps的查詢結果通過管道給grep查詢包含特定字串的程序。管道符 用來隔開兩個命令,管道符左邊命令的輸出會作為管道符右邊命令的輸入。ps ef grep firefox smx 1827 1 4 11 38 00 27 33 usr lib firefox 3...
linux下殺死程序(kill)的N種方法
常規篇 首先,用ps檢視程序,方法如下 ps ef smx 1822 1 0 11 38 00 00 49 gnome terminal smx 1823 1822 0 11 38 00 00 00 gnome pty helper smx 1824 1822 0 11 38 pts 0 00 00...
linux下殺死程序(kill)的N種方法
常規篇 首先,用ps檢視程序,方法如下 ps ef smx 1822 1 0 11 38 00 00 49 gnome terminal smx 1823 1822 0 11 38 00 00 00 gnome pty helper smx 1824 1822 0 11 38 pts 0 00 00...