处理意外关闭的 python



有没有办法捕捉到python中程序意外关闭的异常?

假设我在控制台中运行 python 脚本,那么我不按control+c停止程序,而只是单击控制台的关闭按钮,有什么办法可以在控制台关闭之前捕获错误?

喜欢这个:

try:
print("hello")
except KeyboardInterrupt:
exit()
except UnexpectedClose:
print("unexpected shutoff")
exit()

提前致谢

按照我已经在上面的评论中输入的链接并在此处阅读强制关闭正在发送一个SIGHUP这个修改后的版本在终端窗口关闭并且 python 进程被"杀死"时写入输出文件。

请注意,我只是合并了 SE 上提供的信息(如引用的那样(。

import signal
import time
class GracefulKiller:
kill_now = False
def __init__(self):
signal.signal(signal.SIGINT, self.exit_gracefully)
signal.signal(signal.SIGTERM, self.exit_gracefully)
signal.signal(signal.SIGHUP, self.exit_gracefully)
def exit_gracefully(self,signum, frame):
with open('kill.txt', 'w') as fpntr:
fpntr.write('killed')
self.kill_now = True
if __name__ == '__main__':
killer = GracefulKiller()
while True:
time.sleep(1)
print("doing something in a loop ...")
if killer.kill_now:
break
print "End of the program. I was killed gracefully :)"

最新更新