对我来说奇怪的是一个脚本while.sh,它的内容是:
while [ 1 ];do
sleep 1
echo `date`
done以$while.sh >& while.log &(没有nohup、disown、setsid或double fork())退出并再次登录可以看到这个进程仍然存在,它的ppid是1,它的tty是?
我的系统是rhel6(rhel5是一样的,bash
在centos5.x中,它必须在代码中使用nohup或disown或执行double fork()
rhel6中发生了什么
发布于 2012-10-17 11:52:13
是否设置了huponexit外壳选项?
$ shopt
...
huponexit off如果Bash本身接收到SIGHUP,它将向其作业发送SIGHUP信号,但是当它正常退出时,它不会向它们发送信号,除非您启用此选项。
值得注意的是,这在RHEL6和RHEL5上都是禁用的,至少在我刚刚测试的系统上是这样。我尝试了这个命令:
$ sleep 1000 &当我注销并重新登录时,它不会被关闭,除非我故意启用了shopt -s huponexit。
https://stackoverflow.com/questions/12926799
复制相似问题