xielingyun
xielingyun

Reputation: 820

background jobs change to daemon without nohup/disown?

a strange thing to me a script while.sh,it's content is:

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

run as $while.sh >& while.log & (without nohup or disown or setsid or double fork()) exit and login again can see this process is still exist,it's ppid is 1 and it's tty is ?

my system is rhel6(rhel5 is the same, bash

in centos5.x it must use nohup or disown or do double fork() in code

what happen in rhel6

Upvotes: 2

Views: 866

Answers (1)

John Kugelman
John Kugelman

Reputation: 361849

Is the huponexit shell option set?

$ shopt
...
huponexit      off

Bash will send a SIGHUP signal to its jobs if it receives a SIGHUP itself, but it won't signal them when it exits normally unless you enable this option.

For what it's worth this is disabled on both RHEL6 and RHEL5, at least on the systems I just tested. I tried this command:

$ sleep 1000 &

It was not killed when I logged out and logged back in unless I deliberately enabled shopt -s huponexit.

Upvotes: 1

Related Questions