我有一个进程可以在另一个jvm中创建一个java进程。他们呆在同一台机器上。
我的理解是两个进程在不同的机器上运行,通常可以通过故障检测器完成。但目前只是生成另一个进程(使用Runtime.getRuntime())并将必要的参数传递给子进程。我能想到的是执行系统命令,例如jps ...
或ps -ef | grep ...
什么会更好
检测java进程是否崩溃与监视它的进程位于同一台机器上?
答案 0 :(得分:0)
Runtime.exec
方法返回Process
。您可以通过此实例控制进程:您可以终止它(destroy
),等待终止(waitFor
)并在终止后获取其错误代码(exitValue
)。< / p>
答案 1 :(得分:0)
根据您的目的,Process对象可能有效。
如果您需要更多信息,我建议在它们之间打开套接字连接。这样您就可以随时获得更详细的状态。
我以前做过这个,可以用几个非常小的课来完成。只需在两端发送和接收文本行。
答案 2 :(得分:0)
我会使用在监视pid的框上运行的脚本,如果它崩溃则表示父进程启动新的子进程。通过信号或通过监听管道/本地插座。