我有一个似乎挂起的进程。
当我尝试重新启动该过程时,出现超时。
service logstash_server stop
timeout: run: logstash_server: (pid 11797) 839061s, want down, got TERM
Run Code Online (Sandbox Code Playgroud)
我试过tail -f
在日志上运行 a ,不幸的是没有显示任何内容。我也在kill -15
这个过程中尝试了一个,但它仍然挂起。Top 不会将此显示为僵尸进程。
我想弄清楚“为什么”这个过程处于这种状态,因为这是过去一个月中第三次发生这种情况。
我检查了文件描述符和系统日志,但没有看到任何明显的东西。
文件描述符 => http://pastebin.com/90rDHhT4
系统日志输出 => 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
Run Code Online (Sandbox Code Playgroud)
在我发出之前还有什么我可以做的kill -9
吗?
更新
与开发商开票。问题大约每周持续一次。
有一些工具可以诊断此类问题:
lsof
。列出打开的文件,您可以查看某个文件是否位于挂起的网络共享上。或者等待 TCP 连接。ETC。strace
。查看它挂在什么系统调用中,或者它是否实际上在做某事。gdb
或jdb
任何其他可能相关的工具)。您现在正在进行软件调试,但最终可能需要找出原因。lsof
基本上是strace
要仔细检查您的系统/配置是否有问题。除此之外,您确实需要软件开发人员的帮助。
编辑:根据您的更新,您很可能需要报告错误或请求作者的帮助。除非你身边有开发人员,否则你可以看看。