是否可以在Java中对进程进行双分叉?

是否可以在Java中对进程进行双分叉?,java,linux,fork,daemon,Java,Linux,Fork,Daemon,我需要双叉vmware,这样它就不会继承终端ID(TTY/pts) 这是我到目前为止所拥有的,但是我无法访问runtime.exec进程来派生另一个进程(这会删除终端ID) 是否有一种在java中“后台编程”的方法? 你需要编写一个小的C++程序来做额外的叉,SETID,所有这些东西。 让你的生活变得更容易,你基本上需要通过关闭隐式连接到当前终端的输入/输出流来切断应用程序与shell的连接。 为了让你自己更简单,看看这个项目。在纯Java中,这将是一个更干净的解决方案,不需要任何C包装器 这里

我需要双叉vmware,这样它就不会继承终端ID(TTY/pts)

这是我到目前为止所拥有的,但是我无法访问
runtime.exec
进程来派生另一个进程(这会删除终端ID)


是否有一种在java中“后台编程”的方法?

你需要编写一个小的C++程序来做额外的叉,SETID,所有这些东西。

让你的生活变得更容易,你基本上需要通过关闭隐式连接到当前终端的输入/输出流来切断应用程序与shell的连接。 为了让你自己更简单,看看这个项目。在纯Java中,这将是一个更干净的解决方案,不需要任何C包装器


这里有一个讨论它的例子。

要做到这一点,实际上不需要“双叉”,只需要一个叉。然后孩子应该关闭stdin、out、error并启动一个新会话。

+1-请注意,Java不明确支持这一点的原因是相关概念是操作系统特定的。好吧,这就是我所想的,我只是想确保没有更好的方法。Shell脚本、perl、python等也可以。
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("vmware");