使用cd xxx&&amp ;;时,父进程没有退出nohup sh xx.sh&

时间:2015-06-12 01:41:38

标签: linux bash shell unix

昨晚我遇到了这个奇怪的问题,但仍然没有任何线索。事情就是这样:

我有2个名为parent.shchild.sh的进程,它应该parent.sh启动child.sh,然后parent.sh退出{{1}仍然运行。 (child.sh就像parent.shapachectl

中的任何内容一样

/etc/init.d/xxx

中的代码
parent.sh

#!/bin/bash echo 'start child.sh' cd $HOME && nohup sh child.sh &

中的代码
child.sh

在我运行#!/bin/bash while true; do echo 'child process'; sleep 10 done 之后,似乎sh parent.sh已退出,因为我得到了bash。不幸的是,当我执行parent.sh时,它仍然存在父进程ps -ef | grep parent.sh,并且子进程init也在运行。

在检查child.sh后,我发现如果我更改此行:

parent.sh

cd $HOME && nohup sh child.sh &

然后父进程将在启动子进程后退出。

为什么?

0 个答案:

没有答案