3

我很好地问:

$ 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 不尊重 TERM 信号?如果它在等待什么,我怎么会发现什么?

通常,我会在 Server Fault 上问这种问题,但 neo4j 站点指向这里。

4

2 回答 2

1

不一定是有用性的降序...

  • ps alx可能已经给出了提示(进程状态 - 但对于 Java 程序,问题通常不是 jvm 本身死亡/锁定,而是在 jvm 内运行的东西)
  • top100% cpu 使用情况下可能表示无限循环
  • Java 进程最终可能会处于这样一种状态,即它们仍然做的只是 gc'ing 几乎总是徒劳无功地尝试释放内存,启用 gc 日志记录可以帮助您检测这种情况。
  • afaik neo4j 可以通过 jmx(visualvm 或 jconsole)远程监控,我已经使用这些工具来确定哪个线程挂起我们的 Glassfish 服务器之一。
于 2013-07-06T00:22:40.420 回答
-1

如果你执行 kill [PID],你只发送 (TERM SIGNAL) 并且进程会自动关闭它。如果您发送信号编号 9 (KILL SIGNAL),该过程将立即结束。不管它现在的状态。信号 9(不能忽略)。

于 2013-07-06T00:04:02.347 回答