linux 中怎麼幹掉一個進程

你是否曾經遇到過啓動應用程序,而在使用該應用程序時突然變得無響應並意外崩潰的情況?你嘗試再次啓動該應用程序,但沒有任何反應,因爲原始應用程序進程從未真正完全關閉。

普通用戶可以殺死自己的進程,但不能殺死屬於其他用戶的進程,而 root 用戶可以殺死所有進程。

系統 kill 信號

killkillall可以將給定信號發送到指定的進程或進程組。當沒有指定信號時,兩個工具都會發送-15(-TERM)。

最常用的信號是:

可以通過三種不同的方式指定信號:

使用-l選項列出所有可用信號:

kill -l  # or killall -l

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     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) SIGVTALRM   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

使用kill命令終止進程

要使用kill命令終止進程,首先需要找到進程 PID。你可以使用不同的命令來執行此操作,例如top, ps ,pidofpgrep

假設我們的 Firefox 瀏覽器已無法響應,你需要取消 Firefox 進程。要找到過程 PID,請使用pidof命令:

pidof firefox

以上命令將顯示所有 Firefox 進程:

2551 2514 1963 1856 1771

一旦你知道 Firefox 處理 PID 以終止所有 PID,請輸入:

kill -9 2551 2514 1963 1856 1771

使用killall命令終止進程

killall命令終止與指定名稱匹配的所有程序。

使用與之前相同的方案,我們可以通過鍵入以下命令來終止 Firefox 進程:

killall -9 firefox

killall接受幾個選項,例如指定使用用戶身份運行的進程,使用正則表達式以及根據創建時間終止進程。你可以通過鍵入killall(不帶任何參數)來獲得所有選項的列表。

例如,如果我們要終止以用戶身份運行的所有進程rumenz,則可以運行以下命令:

killall -u rumenz

殺死運行時間超過 5h 的進程

killall -o 5h

殺死進行時間小於 4h 的進程

killall -y 4h

默認情況下,killall 命令是大小寫敏感的,所以我們如果寫錯大小寫,將無法正確殺死進程。

killall -I NGINX

等待直到某個進程被終止, 可以使用 -w 選項,其中 w 代表 wait

killall -w

使用pkill命令終止進程

pkill 使用正則表達式來匹配進程名稱。

ps -eo pid,cmd  | grep ssh
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent

通過正則批量關閉

pkill '^ssh$'

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/HRbKe-kykiRnziVfV0xyuA