簡體   English   中英

當父Bash shell腳本被終止時停止執行python腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM