按照名字殺死進程的四種方法

太長不看版:

匹配方式 模糊匹配 精確匹配
匹配命令 pgrep pidof
kill命令 kill -9 $(pgrep <proc-name>) kill -9 $(pidof <proc-name>)
組合命令 pkill -9 <proc-name> killall -9 <proc-name>

以下是正文

按照名字殺死進程的四種方法

根據名字殺死進程的需求來自於同時殺死一組進程,如MPI程式的進程。殺死單個進程只需要top或者ps命令找到進程然後直接kill -9 <pid>就可以了。

要使用kill命令殺死進程,首先需要找出進程的pid。根據進程名稱查找pid,有精確匹配和模糊匹配兩種方式:

  • pidof 精確匹配找出進程pid
  • pgrep 模糊匹配找出進程pid

得到精確進程名的方法參照殺死單個進程的辦法,使用top或者ps命令。

拿到一組進程pid之後可以使用kill命令批量殺死:

  • kill -9 $(pidof <proc-name>) 精確匹配殺死進程
  • kill -9 $(pgrep <proc-name>) 模糊匹配殺死進程

有兩個命令,分別相當於killpidof或者pgrep命令的組合:

  • killall -9 <proc-name> 相當於pidof+kill
  • pkill -9 <proc-name> 相當於pgrep+kill

這裡用到的-9實際上指的是發送SIGKILL訊號給進程,這是一種比較強力的結束訊號,默認的是-15也就是SIGTERM訊號。

Tags: