1

在 Java 中是否可以分离一个子进程,使其最终不再是一个子进程?或者运行一个外部进程,这不是一个子进程。

我想在 linux 中启动一些大的外部进程。但是使用 ProcessBuilder 或 Runtime.exec,这是我的子进程,当我尝试启动大型进程(例如四个 minecraft 服务器)时,最后我得到了一个 pthread_create 异常。

这在Java中可能吗?

4

1 回答 1

0

我只是测试了一个小样本

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 正在运行,它会在退出后运行。

于 2020-11-14T14:58:52.610 回答