📅  最后修改于: 2023-12-03 15:17:20.718000             🧑  作者: Mango
在开发和维护程序时,我们经常需要结束运行中的进程。Linux操作系统提供了kill命令来帮助我们实现这个功能。
kill命令的语法如下:
kill [参数] 进程号 [进程号...]
其中,进程号可以是单个进程的PID(进程ID),也可以是多个进程的PID,多个进程的PID需要用空格分隔。
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命令是非常常用的一个命令,希望本文能对您有所帮助。