假设我在后台运行一些命令:
./my_script.sh > /dev/null &
然后我立即关闭了putty(这相当于断开当前会话,对吧?)。
后台进程会完成吗?请指教,谢谢。
答案1
当您退出交互式 bash 登录 shell 时,它会向所有子进程发送 SIGHUP,除非 shell 选项huponexit
设置为关闭。
当大多数用户空间进程收到 SIGHUP 时,它们就会退出。
您还可以在命令前加上前缀,nohup
使其忽略 SIGHUP。此外,您还可以disown
使用内部 bash 函数来实现。
答案2
如果你希望后台任务持续存在,可以考虑使用 screen
要创建或重新连接到名为“myprocess”的屏幕会话,该会话将在会话间持续存在:
- 屏幕-DR myprocess
列出所有屏幕:
- 屏幕-ls
答案3
是的,应该。显然我的回答太短了。