Unix 断开会话后将停止后台运行进程

Unix 断开会话后将停止后台运行进程

假设我在后台运行一些命令:

./my_script.sh > /dev/null &

然后我立即关闭了putty(这相当于断开当前会话,对吧?)。

后台进程会完成吗?请指教,谢谢。

答案1

当您退出交互式 bash 登录 shell 时,它会向所有子进程发送 SIGHUP,除非 shell 选项huponexit设置为关闭。

当大多数用户空间进程收到 SIGHUP 时,它们就会退出。

您还可以在命令前加上前缀,nohup使其忽略 SIGHUP。此外,您还可以disown使用内部 bash 函数来实现。

答案2

如果你希望后台任务持续存在,可以考虑使用 screen

要创建或重新连接到名为“myprocess”的屏幕会话,该会话将在会话间持续存在:

  • 屏幕-DR myprocess

列出所有屏幕:

  • 屏幕-ls

答案3

是的,应该。显然我的回答太短了。

相关内容