我正在解决以下问题:
我有一个应该作为服务24/7运行的脚本。因为它非常重要,我希望它能在发送邮件时给我发电子邮件。我找到了atexit模块,但文档明确指出它无法处理崩溃。
所以我的问题是:有没有更好的方法来实现这一点,而不是通过运行另一个服务器来检查这个服务器是否正在运行?或者这里的目标是编写服务以使其不会崩溃(这几乎是不可能的)?
感谢您的想法!
答案 0 :(得分:0)
我的意思是在第一部分中执行您所要求的操作,只需使用try / except包装脚本的主要部分。
myscript.py:
def main():
long_running_process()
if __name__ == '__main__':
try:
main()
except:
send_email()
答案 1 :(得分:0)
您可以使用 makefile.. 并有两个目标,第一个将运行您的脚本,第二个将发送一封电子邮件,表明脚本停止执行..
.PHONY: all run_script send_email clean
all: run_script send_email
run_script:
@echo "Run my script"
python myscript.py
send_email:
@echo "Sending an email"
python send_email.py
clean:
@echo "Cleaning up..."
rm *.txt
将其保存在 makefile 中。 只用 make 或 make all 运行