脚本崩溃前的那一刻调用函数?

时间:2016-08-30 21:24:18

标签: python crash crash-reports

我正在解决以下问题:

我有一个应该作为服务24/7运行的脚本。因为它非常重要,我希望它能在发送邮件时给我发电子邮件。我找到了atexit模块,但文档明确指出它无法处理崩溃。

所以我的问题是:有没有更好的方法来实现这一点,而不是通过运行另一个服务器来检查这个服务器是否正在运行?或者这里的目标是编写服务以使其不会崩溃(这几乎是不可能的)?

感谢您的想法!

2 个答案:

答案 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 运行