![如何从终端打开一个进程而不成为子进程?](https://linux22.com/image/4295/%E5%A6%82%E4%BD%95%E4%BB%8E%E7%BB%88%E7%AB%AF%E6%89%93%E5%BC%80%E4%B8%80%E4%B8%AA%E8%BF%9B%E7%A8%8B%E8%80%8C%E4%B8%8D%E6%88%90%E4%B8%BA%E5%AD%90%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
如果我在中执行以下命令LXTerminal
:
gnome-terminal &
gnome-terminal
被打开。但一旦我关闭LXTerminal
,gnome-terminal
也会被关闭,因为它是一个子进程。有没有办法独立开启第二个进程?
答案1
如果没有子进程,就不可能启动进程。当您执行外部命令时,外壳会在后台调用fork()
后跟execvp()
.您可以防止它在父 shell 死亡时被杀死。
一种方法是使用nohup
:
nohup gnome-terminal &
如果您正在使用的另一个选项bash
是disown
该过程:
gnome-terminal & disown
答案2
是的,只需尝试按如下方式打开它。
$ sudo gnome-terminal &
这样您就可以使用这两个终端进行工作。但请记住不要关闭父终端,因为它会关闭子终端。
我可以用nohup。
$ nohup gnome-terminal &
$ exit