我正在开发一个运行几个Python脚本的Bash shell脚本,如下所示:
cd ${SCRIPT_PATH}
python -u ${SCRIPT_NAME} ${SCRIPT_ARGS} >> $JOBLOG 2>&1有一次,我终止了shell脚本(使用kill PID),但是Python脚本继续运行,即使在脚本终止之后也是如此。我以为主脚本一死,这些东西就会消失。我对Bash脚本有什么误解,我可以做些什么来获得我想要的功能?提前感谢!
发布于 2010-04-17 03:17:04
您需要安装一个信号处理程序来照看您的子进程:
trap "echo killing childs; pkill -P $$" EXIT发布于 2010-04-17 02:56:16
父进程终止时,应向子进程发送SIGHUP -但是:
a)子进程可以忽略SIGHUP,或者以非致命方式处理它。
b)子进程可以通过fork()与父进程分离,并成为进程组的领导者。
您可以只对python代码执行exec操作,这样就可以用python替换shell。
https://stackoverflow.com/questions/2655403
复制相似问题