kill
命令用途
一般情況下,終止一個前台進程使用 Ctrl + C 就可以了。對於一個后台進程就須用 kill 命令來終止。我們會先使用 ps、top 等命令獲得進程的 PID,然后使用 kill 命令來殺掉該進程。
kill 命令是用來向進程發送信號的
| 代號 | 名稱 | 含義 |
|---|---|---|
| 1 | SIGHUP | 啟動被終止的程序,可讓該進程重新讀取自己的配置文件,類似重新啟動 |
| 2 | SIGINT | 相當於鍵盤輸入ctrl+c中斷程序進行 |
| 9 | SIGKILL | 強制終止進程,慎用 |
| 15 | SIGTERM | 終止進程,默認kill使用該信號 |
| 19 | SIGSTOP | 暫停進程,如ctrl+z |
1.命令格式:
kill[參數] [ 進程號]
2.參數:
- -l 列出全部信號名稱
- -a 當處理當前進程時,不限制命令名和進程號的對應關系
- -p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
- -s 指定發送信號
- -u 指定用戶
killall
1.命令格式:
killall[參數] [進程名]
2.命令功能:
用來殺死同名的所有進程
3.命令參數:
用來結束同名的的所有進程
- -Z 只殺死擁有scontext 的進程
- -e 要求匹配進程名稱
- -I 忽略小寫
- -g 殺死進程組而不是進程
- -i 交互模式,殺死進程前先詢問用戶
- -l 列出所有的已知信號名稱
- -q 不輸出警告信息
- -s 發送指定的信號
- -v 報告信號是否成功發送
- -w 等待進程死亡
- --help 顯示幫助信息
- --version 顯示版本顯示
例:
[root@beua ~]# killall -9 bash #把所有登陸的shell殺掉
pkill
- -o 僅找到的最小進程號發送信號
- -n 僅向找到的最大進程號發送信號
- -P 指定父進程號發送信號
- -g 指定進程號
- -t 指定開啟進程的終端
[root@beua ~]# pkill nginx #跟上進程名稱(批量)
[root@beua ~]# pkill -9 -t pts/0
[root@beua ~]# ps aux|grep nginx |grep -v grep|awk '{print $2}'|sed -r 's#(.*)#kill \1#g'|bash
批量殺死進程
[root@beua ~]# kill 18788
默認kill進程父進程,這樣才能徹底的殺掉該進程. 否則如果只是kill子進程,沒有用
[root@beua ~]# kill -1 20154
重載配置,PID號不會發生變化. 只要PID發生變化說明進程被停止過
