【发布时间】:2010-11-28 20:00:02
【问题描述】:
据我从书籍和 bash 手册中了解到的就是这样。当用户从 bash 注销时,如果他没有使用 nohup 或 disown,则该用户启动的所有后台作业将自动终止。但是今天我测试了它:
- 登录到我的 gnome 桌面并访问 gnome-terminal。
-
终端中有两个选项卡,其中一个我创建了一个名为 test 的新用户并以 test 身份登录
su - test -
启动了一个脚本。
cat test.sh #!/bin/bash sleep 60 printf "hello world!!" exit 0 ./test.sh & 之后我退出了测试并关闭了标签
- 在下一个选项卡中,我以 root 身份执行 ps aux,发现作业仍在运行。
这是怎么发生的?
【问题讨论】:
-
我注意到这个问题还没有一个公认的答案,Super User 上有一个类似的新问题可能会很有趣:http://superuser.com/questions/662431/what-exactly-determines-if-a-backgrounded-job-is-killed-when-the-shell-is-exited