如何从终端打开一个进程而不成为子进程?

如何从终端打开一个进程而不成为子进程?

如果我在中执行以下命令LXTerminal

gnome-terminal &

gnome-terminal被打开。但一旦我关闭LXTerminalgnome-terminal也会被关闭,因为它是一个子进程。有没有办法独立开启第二个进程?

答案1

如果没有子进程,就不可能启动进程。当您执行外部命令时,外壳会在后台调用fork()后跟execvp().您可以防止它在父 shell 死亡时被杀死。

一种方法是使用nohup

nohup gnome-terminal &

如果您正在使用的另一个选项bashdisown该过程:

gnome-terminal & disown

答案2

是的,只需尝试按如下方式打开它。

$ sudo gnome-terminal &

这样您就可以使用这两个终端进行工作。但请记住不要关闭父终端,因为它会关闭子终端。

我可以用nohup。

$ nohup gnome-terminal &
$ exit

相关内容