kill命令用来删除执行中的程序或工作。

命令功能

kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。

命令格式

kill [signal or option] PID(s)

表: kill命令的信号名

信号 信号值 行为
SIGHUP 1 挂起
SIGKILL 9 杀死信号
SIGTERM 15 终止

SIGTERM是杀死进程默认和最安全的方式,SIGHUP次之。SIGKILL是最不安全的方式,它将杀死一个没有完全保存的进程。

命令参数

  • -a:当处理当前进程时,不限制命令名和进程号的对应关系。
  • -l <信号编号>:若不加<信号编号>选项,则-l参数会列出全部的信号名称。
  • -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号。
  • -s <信号名称或编号>:指定要送出的信息。
  • -i:交互式的终止进程。
  • -I:忽略大小写。
  • -u:指定用户。

kill的执行范围

  • 用户可以杀死他的所有进程。
  • 用户不能杀死另一个用户的进程。
  • 用户无法终止系统正在使用的进程。
  • root用户可以终止系统级进程和任何用户的进程。

杀死进程

描述:用pgrep找出进程PID,并用kill终止PID为2807的进程。

1
2
3
# pgrep mysql
2807
# kill -9 2807

说明:使用kill -9 PIDkill -SIGKILL PID类似。

使用进程名称杀死进程

描述:pkill命令后直接加上进程名即可杀死该进程,但在杀死之前,最好先确认进程名称是否正确。
命令:
pkill mysql

描述:为了避免kill掉错误的进程,也可以通过下面命令来匹配进程名称。
命令:
pgrep -l ssh
输出:

killall杀死多个进程

描述:一次杀死多个进程。
命令:
kill PID1 PID2 PID3
kill -9 PID1 PID2 PID3
kill -SIGKILL PID1 PID2 PID3

描述:killall用进程名替代PID,并且会kill掉所有的同名进程。
语法:killall [signal or option] Process name
命令:killall mysqld
检查:验证进程是否处于运行状态。

1
2
3
# service mysql status
# pgrep mysql
# ps -aux | grep mysql