[英]Stop execution of python script when parent Bash shell script is killed
我正在研究一個運行幾個Python腳本的Bash shell腳本,如下所示:
cd ${SCRIPT_PATH}
python -u ${SCRIPT_NAME} ${SCRIPT_ARGS} >> $JOBLOG 2>&1
有一次,我殺死了shell腳本(使用kill PID
),但Python腳本繼續運行,即使在腳本終止后也是如此。 我以為這些會在主劇本死后立即死亡。 我對Bash腳本的誤解是什么,我該怎么做才能獲得我正在尋找的功能? 提前致謝!
你需要安裝一個信號處理程序把你的子進程的護理 :
trap "echo killing childs; pkill -P $$" EXIT
當父進程死亡時,應該向孩子發送SIGHUP - 但是:
a)子進程可以忽略SIGHUP,或以非致命的方式處理它。
b)Child可以通過fork()與父進程取消關聯,並成為進程組組長。
你可以只exec
python代碼,以便用python替換shell。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.