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

B F*_*ley 4 gnome-terminal

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

gnome-terminal &
Run Code Online (Sandbox Code Playgroud)

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

jor*_*anm 5

没有孩子就不可能开始一个过程。当您执行外部命令时,shell 在后台调用,fork()后跟execvp(). 您可以防止它在父 shell 死亡时被杀死。

一种方法是使用nohup:

nohup gnome-terminal &
Run Code Online (Sandbox Code Playgroud)

如果您正在使用,另一个选择bash是disown流程:

gnome-terminal & disown
Run Code Online (Sandbox Code Playgroud)