我有一个过程似乎被挂起来了。
当我尝试重新启动进程时,我会得到一个超时。
service logstash_server stop
timeout: run: logstash_server: (pid 11797) 839061s, want down, got TERM
我尝试在日志上运行一个tail -f
,不幸的是,它没有显示任何内容。我也在这个过程中尝试过一个kill -15
,但是它仍然是挂起的。Top不显示这是一个僵尸进程。
我想弄清楚为什么这个过程是在这个状态,因为这是第三次发生在过去的一个月。
我检查了文件描述符和syslog,但是没有看到任何明显的东西。
文件描述符=> http://pastebin.com/90rDHhT4
syslog输出=> http://pastebin.com/xBaMaL9Z
lsof | grep logstash
=> http://pastebin.com/gsSdPyg5的输出
我试着在这个过程中运行一个strace,它只显示了FUTEX_WAIT
strace -p 11797
Process 11797 attached
futex(0x7f6d95d8e9d0, FUTEX_WAIT, 11811, NULL
在发布kill -9
之前,我还能做些什么吗?
和开发商一起开的票。问题继续大约每周一次。
发布于 2015-04-13 17:29:45
有几个工具可以诊断这样的事情:
lsof
。列出打开的文件,您可以看到,例如,其中一个位于挂起的网络共享上。或者等待TCP连接。等。strace
。看看它挂的是什么,或者它是否真的在做什么。gdb
、jdb
或其他可能相关的东西)。您现在正在进行软件调试,但最终可能需要这样做才能找到原因。lsof
和strace
基本上是要对系统/配置中出现故障的东西进行反复检查。除此之外,你真的需要软件开发人员的帮助。
编辑:从您的更新中,您很可能需要报告bug或请求作者的帮助(S)。除非你身边有一个开发人员,否则你可以看看它。
发布于 2015-04-17 22:30:43
进程状态D(“不间断睡眠”)最有可能是无法被终止的进程(即使使用SIGKILL,甚至是根进程)。如果这种情况没有明显的原因而持续存在,那么您的程序肯定在某些I/O驱动程序中触发了一个错误。实际上,除了重新启动之外,您什么也做不了。
发布于 2015-04-16 01:41:40
这可能会有一些帮助- http://man7.org/linux/man-pages/man2/futex.2.html
同意这可能是一个错误,应该交给开发人员。
https://unix.stackexchange.com/questions/195998
复制相似问题