我有一个父JVM(我将称之为JVM_parent),在它内部,我使用Runtime.getRuntime().exec("java .......")
(我将其称为JVM_child
现在,当我关闭(优雅地或强制地)JVM_parent时,JVM子级也会退出。
当JVM_parent关闭时,如何防止JVM子被关闭?我在Linux上运行。
子进程将从父进程继承,这样kill信号也会杀死子进程。为了防止这种情况,你需要将孩子与父母分离,这样它就不会接收到这些信号,并将继续。
使用它最简单的方法是运行类似bash nohup prog &
的东西,它在一个单独的子级中运行,并且不监听HUP信号。请注意,仅运行bash -c
是不够的。您可以使用类似pstree
的东西来判断bash进程是否已经完成。