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

與MPI做鬥爭發表於2020-10-11

太長不看版:

匹配方式 模糊匹配 精確匹配
匹配命令 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訊號。

相關文章