殺死linux程序的幾種方法

2021-10-14 02:14:56 字數 3188 閱讀 8938

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命令,它是pgrepkill的結合體

pkill -9 pycharm
使用killall命令,它會傳送訊號到所有的指定程序,如果沒有明確訊號,預設的是sigterm,也就是停止(termination)。

killall -9 pycharm
killallpkill是相似的,不過如果給出的程序名不完整,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...