我正在学习红帽authentication。 在书中说,从RHEL 7(也是Centos最新版本)开始,如果你在后台启动一个进程,你不需要使用nohup,如果你杀了父shell,启动的进程将不会被杀死。
我试图testing这个,看到了两个行为。 如果我跑了
sleep 3600 &
那么就像书中所说的那样,即使我杀了父shell,我也看到这个进程正在运行。
如果我运行(例如从书中)
dd if=/dev/zero of=/dev/null &
我杀了父壳然后我不再看到这个过程。
谁能说出这是为什么?
我只是在CentOS 7上重复了你的例子,在这两种情况下,这些进程在父shell被杀之后继续运行。 以下是我所做的:
壳牌1
$ sleep 3600 & $ exit
壳牌2
$ ps auxw | grep sleep www 22268 0.0 0.0 107896 608 ? S 10:52 0:00 sleep 3600
壳牌3
$ dd if=/dev/zero of=/dev/null & $ exit
壳牌1
$ ps auxw | grep dd www 22294 101 0.0 107940 604 ? R 10:52 0:13 dd if=/dev/zero of=/dev/null
这是我在RHEL 7中不知道的非常漂亮的行为。
多年来,我一直在使用screen在后台运行长期的进程。 我可能会继续使用它,因为能够重新连接到进程的输出以查找它可能生成的任何进度消息是很好的。