如何在Linux和Windows中优雅地停止Java进程?
何时Runtime.getRuntime().addShutdownHook被召唤,什么时候不召唤?
终结者怎么样,他们在这里有帮助吗?
我可以从shell向Java进程发送某种信号吗?
我正在寻找最好的便携式解决方案.
在Scala中,当另一个(远程)actor终止时,可以通过设置trapExit标志并使用第二个actor作为参数调用link()方法来通知actor.在这种情况下,当远程actor通过调用exit()结束其作业时,通过接收Exit消息来通知第一个.
但是当远程actor以不太优雅的方式终止时(例如运行崩溃的VM)会发生什么?换句话说,本地演员如何发现远程演员不再可用?当然我更希望(如果可能的话)可以通过类似于Exit 1的消息通知本地actor,但似乎不可行.我错过了什么吗?我是否应该不断轮询远程参与者的状态(在这种情况下我不知道哪种方式最好)或者是否有更智能的解决方案?
我正在执行一个与Java一起运行的外部程序:
Process p = Runtime.getRuntime().exec("/path/to/binary");
当我停止Java应用程序时,外部程序继续运行但我希望它也停止运行.