怎么殺死進程?


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發生變化說明進程被停止過


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM