nohub command & 和 nohub command 的区别

先说说nohub :nohub的意思就是忽略发来的SIGHUB信号。

再说说&: 在命令后面加&代表放入后台执行,当前shell立即返回,不等待子进程的执行结果。

有人会说了,我加上&执行以后,在退出当前shell,子进程依然在执行(变成了孤儿程序  orphan process),为什么需要这个nohub呢。


如果你用的是bash,bash有个选项nohuponexit。这个值默认是 false。意思是说当你交互式shell退出的时候不发送SIGHUB信号给jobs (通过&执行的命令算job)

这个值可以被修改 :shopt -s nohuponexit.(把这个选项修改成on)

也就是说,如果你的bash 选项nohuponexit 为false,那么当shell 退出的时候,不会给他的jobs发送SIGHUB信号,所以子进程依然可以执行,只是成了孤儿程序,被Init程序领养。

如果你的bash 选项nohuponexit 为treu,那么对不起了,即使你的命令是通过&执行的,照样会被毫不留情的关闭。(除非你运行的程序本身就是忽略SIGHUB信号的)

这也就是nohub的作用了。加了nohub命令以后,及时nohuponexit的值为true,当shell退出的时候,子进程依然可以继续运行。


ps:

查看bash的选项命令

root#shopt

启用选项

root#shopt -s  选项

禁用选项

root#shopt -u 选项

ps:直接关闭终端和exit会话是不一样的 ,直接关闭终端jobs会受到hup信号。


参考:http://serverfault.com/questions/115999/if-i-launch-a-background-process-and-then-log-out-will-it-continue-to-run

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值