Cit*_*ght 4 kill rhel signals jboss
我们使用常规/etc/init.d/jboss stop
来停止我们机器上的 jboss。但有时,它不会停止这个过程,我们会得到下面粘贴的内容。当发生这种情况时,我们用kill -9
. 这可能是应用程序代码中的错误还是可以修复的操作系统级别问题?
waiting for processes to stop/usr/local/jboss/bin/run.sh
waiting for processes to stop/usr/local/jboss/bin/run.sh
waiting for processes to stop/usr/local/jboss/bin/run.sh
/usr/local/jboss/bin/run.sh
Timeout: Shutdown command was sent, but process is still running with PID 7252
[root@mercury02 ~]#
Run Code Online (Sandbox Code Playgroud)
PS:我打开了 /etc/init.d/jboss 文件,正如预期的那样,它kill -15
在使用stop
.
并不是 SIGTERM 不起作用,而是应用程序没有按照您希望的方式对其做出反应。一般捕获SIGTERM的目的是在退出前做一些整理,比如同步数据到磁盘等。
然而,没有强制要求进程实际退出,因此如果在响应过程中出现问题,则可能不会。
kill -9
另一方面,SIGKILL ( ) 不能被捕获并且应该强制进程停止,除非由于某些非常不寻常的原因它是不可中断的(它不能自愿产生的原因)。这样做的问题在于,这意味着该进程无法在关闭之前做出反应并做任何它需要做的小事。这可能意味着它使磁盘上的数据处于不一致状态等。
因此,杀死进程的正常和首选方法是 SIGTERM。只有在失败时才应该求助于 SIGKILL,在这种情况下,您应该想知道为什么它是必要的,因为正常运行的应用程序不应该需要它。换句话说...
这可能是应用程序代码中的错误
是的。
归档时间: |
|
查看次数: |
3351 次 |
最近记录: |