kill -9与kill -15的区别(以kill nginx的master进程举例)
kill -9与kill -15的区别(以kill nginx的master进程举例)
解释
kill -signalNumber pid
nginx -9 一般用来强制关闭进程,直接关闭(极端情况下使用此命令)。
nginx -15 通知进程关闭,会等待进程及其相关的资源释放。
kill nginx master
我们直接上图,看下分别使用kill: -9,-15来关闭nginx的主进程。
kill -9 nignxMaster
从上图中我们可以看到,直接kill -9掉master进程,nginx的work进程并没有停止,如果这个时候我们启动nginx是会提示Address already in use错误。这个时候需要在此关闭work进程,才可以启动成功。
kill -15 nginxMaster
从图中看到,我们用kill -15关闭master进程后,work进程也被关闭了。相当于使用了nignx的stop命令。
信号的作用
我来看看各个信号量的解释,就都明白了。
1(Hup): 重启制定的进程。
9(Kill): 无条件杀死进程。
15(Trem): 优雅的终止进程。
大概有64种信号了,我们只给出了常用的几个,其他有兴趣的同学可以看本文参考。了解更多。
总结
安全关闭程序使用kill -15,极端情况下使用kill -9。
参考
https://linuxize.com/post/kill-command-in-linux/
https://www.wangchujiang.com/linux-command/c/kill.html
还没有评论,来说两句吧...