Linux 后台作业在没有nohup/disown的情况下更改为守护进程?

Linux 后台作业在没有nohup/disown的情况下更改为守护进程?,linux,bash,daemon,nohup,Linux,Bash,Daemon,Nohup,我觉得很奇怪 一个脚本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或do double fork() rhel6中发

我觉得很奇怪 一个脚本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或do double fork()


rhel6中发生的是
huponexit
shell选项集

$ shopt
...
huponexit      off
如果Bash本身接收到SIGHUP,它将向其作业发送SIGHUP信号,但除非启用此选项,否则它不会在正常退出时向作业发送SIGHUP信号

值得一提的是,至少在我刚刚测试的系统上,RHEL6和RHEL5都禁用了该命令。我尝试了以下命令:

$ sleep 1000 &

当我注销并重新登录时,它没有被杀死,除非我故意启用了
shopt-s huponexit

非常感谢,我得到了它