为了让进程在其父 shell 退出后继续存活,该进程需要满足哪些必要和充分条件?
具体考虑信号,哪些信号应该被进程忽略或者不发送给进程?
SIGHUP,SIGTERM?
但是
nohup
让进程只忽略 SIGHUP,而不忽略 SIGTERM? (disown
似乎避免父外壳向进程发送任何信号)终端生成的信号,例如 SIGINT、SIGQUIT、SIGTSTP、SIGTTIN、SIGTTOU?
但是
disown
和&
(后台)不会断开进程与其控制终端的连接。 (nohup
可以断开进程与其控制终端的连接)。
除了信号之外,其他方面除了信号之外还有其他必要条件吗?
考虑到上述条件,如何使进程在其父 shell 退出后继续存在?
使进程在其父 shell 退出后继续存在的任务与更改进程父进程的任务相同吗?
在 bash shell 和基本实用程序(例如 coreutils)中,更改进程的父 shell 进程是唯一的两种方法吗
disown
?nohup
shell退出时亲子关系会发生变化吗?