【发布时间】:2011-07-28 14:17:09
【问题描述】:
根据此常见问题解答(以及许多其他书籍):
ftp://rtfm.mit.edu/pub/faqs/unix-faq/programmer/faq
1.15 为什么我的进程在其父进程死亡时没有得到 SIGHUP?
当没有一个进程“停止”时,SIGHUP 不会被发送到后台进程。
但我们都知道,如果 SIGHUP 没有在后台进程中被捕获,它们会在您关闭终端(或 ssh 之类的连接)时死掉。
即CTRL+Z - 当终端关闭时,bg 不足以让进程存活。
但是为什么呢? 任何智慧都值得赞赏!
【问题讨论】:
-
当终端关闭时,后台进程仍然可以正常运行。它们只有在尝试写入关闭的终端并收到 SIGTTOU 时才会终止。
-
如果您澄清您要询问的外壳,这将有所帮助。
标签: session terminal nohup sshd