感谢你的解答,但是程序脚本一旦报错,程序就停止运行,我想做到的是无需人工操作,让程序一直运行 直到任务完成
时间: 2024-03-22 21:41:03 浏览: 83
通过nohup循环执行该脚本即可不间断执行(单纯的nohup不起作用时)
如果你想要在程序发生错误时自动重启程序,可以使用 Python 自带的 `while True` 循环来实现。在循环中运行程序,如果程序发生错误则捕获异常并记录日志,然后继续循环运行程序。
同时,你可以将变量保存到文件中,以便在程序重启后能够读取上一次程序的状态。具体实现可以参考下面的示例代码:
```python
import json
import logging
import time
# 保存变量到 JSON 文件中
def save_var_to_file(var, filename):
with open(filename, 'w') as f:
json.dump(var, f)
# 从 JSON 文件中加载变量的值
def load_var_from_file(filename):
with open(filename, 'r') as f:
var = json.load(f)
return var
# 程序主体
while True:
try:
# 从文件中加载变量的值
number = load_var_from_file('number.json')
# 程序代码
# ...
# 保存变量到文件中
save_var_to_file(number, 'number.json')
# 任务完成,退出循环
break
except Exception as e:
# 记录日志等操作
logging.error(f'程序运行出错:{e}')
# 等待一段时间后重启程序
time.sleep(60)
continue
```
在上面的示例代码中,程序会在 `while True` 循环中运行,如果程序发生错误则捕获异常并记录日志,然后等待一段时间后重启程序。在程序运行过程中,变量的值会被保存到 `number.json` 文件中,以便在程序重启后能够读取上一次程序的状态。当程序完成任务后,会退出循环并结束程序的运行。
阅读全文