按照名字殺死進程的四種方法
太長不看版:
匹配方式 | 模糊匹配 | 精確匹配 |
---|---|---|
匹配命令 | 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
精確匹配找出進程pidpgrep
模糊匹配找出進程pid
得到精確進程名的方法參照殺死單個進程的辦法,使用top
或者ps
命令。
拿到一組進程pid之後可以使用kill命令批量殺死:
kill -9 $(pidof <proc-name>)
精確匹配殺死進程kill -9 $(pgrep <proc-name>)
模糊匹配殺死進程
有兩個命令,分別相當於kill
和pidof
或者pgrep
命令的組合:
killall -9 <proc-name>
相當於pidof+killpkill -9 <proc-name>
相當於pgrep+kill
這裡用到的-9
實際上指的是發送SIGKILL
信號給進程,這是一種比較強力的結束信號,默認的是-15
也就是SIGTERM
信號。