如何获得关闭python进程/突然终止的警报?

时间:2010-12-27 12:40:13

标签: python

我们如何在python进程中挂钩代码,以便在关闭进程/突然终止时发送警报?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

目前尚不清楚你究竟是什么意思。关闭/中止进程本身?或儿童过程?

  • 关闭/中止流程本身:查看Pythons atexit module;在这里,您可以在程序干净退出时注册回调。但是你绝对没有办法捕捉所有情况,如果你的程序失败而不是一个严重的问题(例如段错误)你的atexit处理程序永远不会被调用。你需要一个监督过程来完全捕获所有中止。
  • 关闭/中止子进程:如果您是使用子进程模块,你可以简单地在popen对象上调用poll()或wait()来查看生成的进程是否已经死亡/等待它们死掉。对于更高级的实现,使用Pythons信号模块为SIGCHLD设置处理程序 - 只要其中一个子进程终止,就会将此信号发送到您的进程。