在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 ]