2012-10-17 29 views
2

一件奇怪的事情对我来说 脚本while.sh,它的内容是:后台作业变成守护进程而没有nohup/disown?

while [ 1 ];do 
sleep 1 
echo `date` 
done 

运行为$ while.sh> & while.log &(不nohup的或否认或setsid或双叉()) 退出并再次登录可以看到这个过程仍然存在,它的ppid是1,它的tty是?

我的系统是RHEL6(RHEL5是一样的,庆典

在centos5.x它必须使用的nohup或否认或做双叉()在代码

在RHEL6

发生什么

回答

1

是该huponexit外壳选项?

$ shopt 
... 
huponexit  off 

bash将SIGHUP信号发送到其工作,如果它收到一个SIGHUP本身,而是它退出时也不会发出信号他们也不除非你启用这个选项,否则不正确。

至少在我刚刚测试的系统上,它在RHEL6和RHEL5上都是禁用的。我试过这个命令:

$ sleep 1000 & 

,当我退出,并除非我特意启用shopt -s huponexit重新登录它没有被杀。

+0

非常感谢你,我懂了 – xielingyun

相关问题