Bash
被殺死的python腳本也會停止呼叫它的while循環
我正在使用 python 腳本以非互動方式上傳文件,通常是在螢幕會話中。對於大型上傳,有時會發生腳本停止,因為它被殺死(由 python 或作業系統,我不確定):
... uploading file000100 ... uploading file000101 ... Killed
來自腳本的錯誤程式碼是 137——我不確定如何獲得更多“診斷”資訊。
為了繼續上傳,我將腳本放在了一個 while 循環中:
python3 upload_files.py; \ while [[ $? == 137 ]]; do \ python3 upload_files.py; \ sleep 1; \ done
但是這個技巧不起作用,因為當腳本被殺死時,while循環也會結束。那有意義嗎?
如果您想始終重新啟動相同的腳本直到它成功,您可以執行以下操作:
while ((1)) ; do python3 script.py && break done
即只有在成功完成 python 後才打破無限循環。否則無限循環將接管重新啟動腳本。