也许这是一个广泛的问题,但我还没有找到其他地方的答案,所以这里去
我正在编写的Python脚本需要在已部署的设备上不断运行(在一个完美的世界中,我认识到这可能并不完全可能)。我已经花了很多时间来添加“try…except”语句,以便在出现问题时,脚本可以恢复并继续工作
问题是,我不确定我是否能够(也不应该)处理每一个可能抛出的异常。因此,我决定让脚本停止运行并使用systemd重新启动它可能更好
三种选择:
第三种选择在我看来是最合理的。所以问题是:在“防崩溃”代码之间进行优化,并允许systemd崩溃和重启时,应该考虑哪些因素?
对于一些特定于应用程序的信息:启动脚本时会有一个很小但很明显的开销,主要部分将每秒运行50到100次,这不是“任务关键型”的,因为在发生故障时不会发生死亡/损坏(只是一些数据丢失),我已经预料到它的网络会时断时续地出现问题
应处理所有已知的例外情况。任何未定义的行为都是潜在的安全问题
正如您所建议的,计划未知的异常也是谨慎的。可能还有一个小的内存泄漏,即使在正确运行的情况下也会导致应用程序崩溃。因此,如果
systemd
失败,让它自动重新启动仍然是谨慎的,即使所有预期的失败模式都已处理相关问题 更多 >
编程相关推荐