linux命令之kill结束进程
kill
kill 用于结束执行中的程序。
kill 可发送指定的信号到相应进程。不指定信号将发送SIGTERM(15)终止指定进程。若仍无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响所有用户的进程,非root用户只能影响自己的进程。
语法
kill [参数] [进程号]
参数说明:
-
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-
-p 指定 kill 命令只打印相关进程的进程号,而不发送任何信号
-
-s 指定发送信号
-
-u 指定用户
使用 kill -l 命令列出所有可用信号。最常用的信号:
- 1 (HUP):重新加载进程
- 9 (KILL):杀死一个进程
- 15 (TERM):正常停止一个进程
实例
杀死进程
kill 6780
强制杀死进程
kill -KILL 6780
发送SIGHUP信号,可以使用一下信号
kill -HUP pid
彻底杀死进程
kill -9 6780
显示信号
kill -l
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。常用的信号:
信号 | 信号的数值 | 说明 |
---|---|---|
HUP | 1 | 终端断线 |
INT | 2 | 中断(同 Ctrl + C) |
QUIT | 3 | 退出(同 Ctrl + \) |
TERM | 15 | 终止 |
KILL | 9 | 强制终止 |
CONT | 18 | 继续(与STOP相反, fg/bg命令) |
STOP | 19 | 暂停(同 Ctrl + Z) |
杀死指定用户所有进程
kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程
kill -u hnlinux //方法二