在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
,您将看到睡眠360正在运行。