gpt4 book ai didi

java - 当我的 Java 应用程序退出/崩溃时,如何摆脱 Java 子进程?

转载 作者:搜寻专家 更新时间:2023-10-30 19:41:51 27 4
gpt4 key购买 nike

我在 Java 中启动了一个子进程,如下所示:

final String[] cmd = {"<childProcessName>"};
Process process = Runtime.getRuntime().exec(cmd);

它现在在后台运行。一切都很好。

如果我的程序现在崩溃了(它仍在开发中:-))子进程似乎仍然存在。如何让它在父 Java 进程死亡时自动结束?

如果有帮助,我正在使用 Mac OS X 10.5

最佳答案

如你所说,addShutdownHook是要走的路。

但是:

  • 无法真正保证您的关闭 Hook 会在程序终止时执行。有人可能会终止 Java 进程,在这种情况下,您的关闭钩子(Hook)将不会被执行。 (如本 SO question 中所述)

  • 一些标准库有自己的钩子(Hook),它们可能先于您的钩子(Hook)运行。

  • 谨防死锁。

另一种可能性是 wrap your java program in a service .

关于java - 当我的 Java 应用程序退出/崩溃时,如何摆脱 Java 子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com