Java 防止子JVM在其父JVM退出时退出
我有一个父JVM(我称之为JVM\u parent),在它里面,我使用Java 防止子JVM在其父JVM退出时退出,java,linux,process,jvm,Java,Linux,Process,Jvm,我有一个父JVM(我称之为JVM\u parent),在它里面,我使用Runtime.getRuntime().exec(“java……)(我称之为JVM\u child)启动了另一个JVM 现在,当我关闭(优雅地或强制地)JVM\u父级时,JVM\u子级也会退出 当JVM\u父级关闭时,如何防止JVM\u子级关闭?我正在Linux上运行。子进程将从父进程继承,这样kill信号也将杀死子进程。为了防止这种情况发生,您需要将子对象与父对象分离,这样子对象就不会接收到这些信号,并将继续 最简单的使用
Runtime.getRuntime().exec(“java……)
(我称之为JVM\u child)启动了另一个JVM
现在,当我关闭(优雅地或强制地)JVM\u父级时,JVM\u子级也会退出
当JVM\u父级关闭时,如何防止JVM\u子级关闭?我正在Linux上运行。子进程将从父进程继承,这样kill信号也将杀死子进程。为了防止这种情况发生,您需要将子对象与父对象分离,这样子对象就不会接收到这些信号,并将继续
最简单的使用方法是运行类似于
bash-nohup-prog&
的程序,它在单独的子系统中运行,并且不监听HUP信号。请注意,运行bash-c
是不够的。您可以使用类似于pstree
的方法来判断bash进程是否已完成。您可以尝试以下答案:问题是您需要将子进程与父进程分离,并且每个操作系统的过程都不同。@sagneta+1是的,分离父进程和子进程是关键。让我试试。无法使用bash-c或/bin/sh-c选项分离。为什么不能?每个Linux系统都有bash
命令!我唯一能想到的另一件事是创建一个bash脚本,用一个“nohup&”来执行另一个进程。这就是你想要的一行:nohup./myprogram&