我真的不知道该如何表述问题标题。我的意思是,当我使用终端启动程序时,大多数情况下,当终端关闭时,它也会退出从中启动的程序。
现在,如果我们从层次结构的角度来看,这是有道理的,终端是产生子进程的父进程,并且父进程的任何停止也会导致子进程随后停止。
然而,我注意到情况并非总是如此。例如,我下载了Sublime 文本编辑器并在 PATH 中创建了一个符号链接。我可以通过sublime
从终端发出命令来启动此程序,但随后关闭终端程序对 Sublime 没有任何作用。
然而,其他时候,启动的子进程也会关闭或挂起并导致问题。
总结: 从已关闭的父进程启动的程序是否总是会在父进程退出时关闭?如果是这样,有没有办法从终端启动程序,然后关闭终端而不退出已启动的进程?
这里的重点是从终端启动程序,这样我就不会用符号链接过度填充我的桌面。
答案1
您可以使用该名称放弃某个进程。
$ nedit &
$ disown nedit
$ exit
并且 nedit 仍然存在。
一些程序会自行分叉,因此您启动的程序会启动另一个自行运行的程序。