我使用 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 后才打破无限循环。否则,无限循环将接管并重新启动脚本。