防止子 JVM 在其父 JVM 退出时退出

preventing child JVM from exiting when its parent JVM exits

我有一个父 JVM(我称之为 JVM_parent),我在其中使用 Runtime.getRuntime().exec("java .......") 启动了另一个 JVM(我将呼叫 JVM_child)

现在,当我关闭(正常或强制)JVM_parent 时,JVM_child 也会退出。

如何防止JVM_childJVM_parent关机时关机?我 运行 在 Linux。

子进程将从父进程继承,因此终止信号也会终止子进程。为防止这种情况,您需要将子项与父项分离,这样它就不会收到这些信号并继续。

使用它的最简单方法是 运行 类似 bash nohup prog & 的东西,它在单独的子进程中运行它并且不监听 HUP 信号。请注意 运行 bash -c 是不够的。您可以使用 pstree 之类的东西来判断 bash 进程是否已完成。