linux – 如果我启动后台进程然后注销,它会继续运行吗?
在与同事长时间讨论之后问这个问题,我真的想在这里澄清一下. 我通过添加“&”来启动后台进程到命令行或用CTRL-Z停止它并在后台用“bg”恢复它.然后我退出了. 怎么了? 我们很确定它应该被一个SIGHUP杀死,但这并没有发生;再次登录时,进程很愉快,并且pstree显示它被init“采用”了. 这是预期的行为吗? 但是,如果是的话,nohup命令的目的是什么?看起来这个过程无论如何都不会被杀死,无论是否有…… 编辑1 更多细节: >该命令是从SSH会话启动的,而不是从物理控制台启动的. 编辑2 更明确地陈述问题:将后台进程(使用&或bg)使其忽略SIGHUP,就像nohup命令一样? 编辑3 我尝试手动发送一个SIGHUP到scp:它退出了,所以它肯定不会忽略该信号. 然后我再次尝试启动它,将它放在后台并注销:它被init“采用”并继续运行,我在重新登录时找到了它. 我现在很困惑.看起来没有一个SIGHUP被发送到所有upong注销. 解决方法找到答案.对于BASH,这取决于huponexit shell选项,可以使用内置shopt命令查看和/或设置该选项. 默认情况下,此选项看起来是关闭的,至少在基于RedHat的系统上是这样. 有关BASH man page的更多信息:
(编辑:淮安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |