在 Java 中是否可以分离一个子进程,使其最终不再是一个子进程?或者运行一个外部进程,这不是一个子进程。
我想在 linux 中启动一些大的外部进程。但是使用 ProcessBuilder 或 Runtime.exec,这是我的子进程,当我尝试启动大型进程(例如四个 minecraft 服务器)时,最后我得到了一个 pthread_create 异常。
这在Java中可能吗?
在 Java 中是否可以分离一个子进程,使其最终不再是一个子进程?或者运行一个外部进程,这不是一个子进程。
我想在 linux 中启动一些大的外部进程。但是使用 ProcessBuilder 或 Runtime.exec,这是我的子进程,当我尝试启动大型进程(例如四个 minecraft 服务器)时,最后我得到了一个 pthread_create 异常。
这在Java中可能吗?
我只是测试了一个小样本
import java.io.IOException;
public class Forking {
public static void main(String[] args) {
Process exec = null;
try {
exec = Runtime.getRuntime().exec("sleep 360");
} catch (IOException e) {
e.printStackTrace();
}
if (exec != null) {
System.out.println(exec.isAlive());
}
}
}
它毫无例外地运行,如果ps aux|grep sleep您会看到 sleep 360 正在运行,它会在退出后运行。