python脚本被杀死也会停止调用它的while循环

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 循环也会结束。那有意义吗?

答案1

如果您希望始终重新启动同一脚本直到成功,您可以执行以下操作:

while ((1)) ; do
   python3 script.py && break
done

即只有在成功完成 python 后才打破无限循环。否则,无限循环将接管并重新启动脚本。

相关内容