📜  Linux Kill(1)

📅  最后修改于: 2023-12-03 15:17:20.718000             🧑  作者: Mango

Linux Kill

在开发和维护程序时,我们经常需要结束运行中的进程。Linux操作系统提供了kill命令来帮助我们实现这个功能。

kill命令的语法

kill命令的语法如下:

kill [参数] 进程号 [进程号...]

其中,进程号可以是单个进程的PID(进程ID),也可以是多个进程的PID,多个进程的PID需要用空格分隔。

kill命令的参数

kill命令可以使用的参数如下:

  • -s:指定要发送的信号,可以使用信号名称或信号编号;
  • -l:列出全部信号名称;
  • -P:指定要将信号发送给哪个进程;
  • -u:指定要将信号发送给哪个用户;
  • -c:发送一个SIGINT信号(相当于键盘输入CTRL+C)。
常用信号

使用kill命令时,我们需要指定要发送哪种信号。下面是常用的一些信号及对应的信号编号和名称:

|信号编号|信号名称|作用| |---|---|---| |1|SIGHUP|发送给一个程序时,通知它重新读取配置文件| |2|SIGINT|相当于键盘输入CTRL+C| |3|SIGQUIT|相当于键盘输入CTRL+\,但是不会产生核心转储| |9|SIGKILL|强制结束进程,进程无法忽略这个信号| |15|SIGTERM|默认情况下发送给一个程序的信号,要求它正常终止运行| |17|SIGSTOP|暂停进程| |18|SIGTSTP|相当于键盘输入CTRL+Z|

实例演示

我们可以使用ps命令查看当前正在运行的进程的PID。比如:

ps -ef | grep nginx

上面的命令会列出所有正在运行的nginx相关进程,其中第二列就是PID。比如:

root      1126     1  0 22:15 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  1128  1126  0 22:15 ?        00:00:29 nginx: worker process
...

我们可以通过以下命令来结束进程:

kill -s SIGTERM 1128

上面的命令会向进程1128发送SIGTERM信号,要求它正常终止运行。

如果想要强制结束进程,可以使用SIGKILL信号,命令如下:

kill -s SIGKILL 1128
总结

我们介绍了Linux的kill命令及其常用参数和信号,以及如何结束一个进程。在实际开发和维护中,kill命令是非常常用的一个命令,希望本文能对您有所帮助。