首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后台作业在没有nohup/disown的情况下更改为守护进程?

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

Stack Overflow用户
提问于 2012-10-17 11:44:29
回答 1查看 740关注 0票数 2

对我来说奇怪的是一个脚本while.sh,它的内容是:

代码语言:javascript
复制
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中发生了什么

EN

回答 1

Stack Overflow用户

发布于 2012-10-17 11:52:13

是否设置了huponexit外壳选项?

代码语言:javascript
复制
$ shopt
...
huponexit      off

如果Bash本身接收到SIGHUP,它将向其作业发送SIGHUP信号,但是当它正常退出时,它不会向它们发送信号,除非您启用此选项。

值得注意的是,这在RHEL6和RHEL5上都是禁用的,至少在我刚刚测试的系统上是这样。我尝试了这个命令:

代码语言:javascript
复制
$ sleep 1000 &

当我注销并重新登录时,它不会被关闭,除非我故意启用了shopt -s huponexit

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12926799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档