为什么我要杀-9 neo4j?

为什么我要杀-9 neo4j?,neo4j,Neo4j,我客气地问: $ neo4j stop Stopping Neo4j Server [74949]........................ lots of dots ...... 等了几分钟,又和蔼地问: $ kill 74949 $ ps x | grep neo 74949 ?? R 30:13.01 /Library/Java/Java...org.neo4j.server.Bootstrapper 还在跑。问得好 $ kill -9 74949 为什么neo4

我客气地问:

$ neo4j stop
Stopping Neo4j Server [74949]........................ lots of dots ......
等了几分钟,又和蔼地问:

$ kill 74949
$ ps x | grep neo
74949   ??  R     30:13.01 /Library/Java/Java...org.neo4j.server.Bootstrapper
还在跑。问得好

$ kill -9 74949
为什么neo4j不尊重术语信号?如果它在等待什么,我怎么会知道是什么


通常,我会问关于服务器故障的此类问题,但neo4j站点指向这里。

如果执行kill[PID],则只发送(术语信号),进程将自动关闭。如果发送9号信号(终止信号),进程将立即结束。不管它的当前状态如何。信号9(不能忽略)。

不一定是有用性的降序

  • ps-alx
    可能给出了一个提示(进程状态-但是对于Java程序,问题不是jvm本身死机/锁定,而是jvm内部运行的东西)
  • top
    中,100%的cpu使用率可能表示循环无限
  • Java进程最终可能会处于这样一种状态:它们所做的只是gc’ing,几乎总是徒劳地尝试释放内存,启用gc日志记录可以帮助您检测这种情况
  • afaik neo4j可以通过jmx(visualvm或jconsole)进行远程监控,我已经使用这些工具来确定挂在Glassfish服务器上的线程

我理解
kill
命令,谢谢。实际上,kill的默认信号是TERM。否则,您是正确的,但您的回答对我的
neo4j
没有帮助。如果有查询正在运行,这能阻止neo4j停止吗?你们找到解决方案了吗?如何停止它?如果下次发生这种情况,请执行
jstack PID
,并提供线程转储,因为它提供了JVM当前正在做什么的细节。