终止进程

在Linux中,各进程使用信号相互通信,进程信号是进程可识别的预定义信息,进程可以选择忽略他或做出响应,开发人员规划进程如何处理信号,大多数精心编写的应用程序都能够接收标准的Unix进程信号,并对此做出响应

kill命令

kill命令允许根据ID(PID)将信号发送给相关进程,默认情况下,kill命令会发送一个TERM命令给命令行中列出的所有PID,遗憾的是,你只能使用进程的PID,而不是他们的命令名称,这使kill命令有时难以使用

[root@mio-test ~]# kill 29116

TERM信号将友好的通知进程停止运行,遗憾的是,如果某个进程已经失控,他极有可能会忽略该请求,我们可以使用-s参数来指定其他信号

linux进程信号

1 HUP 挂起

2 INT 中断

3 QUIT 停止运行

9 KILL 强制终止

11 SEGV 段违例

15 TERM 条件终止

17 STOP 强制停止,但未终止

18 TSTP 停止或暂停,但继续在后台运行

19 CONT STOP或TSTP之后恢复执行

[root@mio-test ~]# kill -s KILL 29116

killall命令

killall命令非常强大,他可以根据进程名称(而非PID)来停止进程,killall命令还允许使用通配符,他对于处理出错的系统非常有用

[root@mio-test ~]# killall nginx
[root@mio-test ~]# service nginx restart
Stopping nginx:                                            [FAILED]
Starting nginx:                                            [  OK  ]