我有一个运行在Linux系统上的,基于shelve
的Python 3.6应用程序,基本上具有以下代码:
try:
run()
finally:
write_to_db()
当我开发并用KeyboardInterrupt
停止时,这很好。然后,我决定从shell脚本在后台运行它:
#!/bin/bash
nohup ./application &
我还决定让其他人对其进行测试。
过了一会儿,我意识到我需要添加一个signal
处理程序,因此我有办法正确终止它并处理服务器重启。我已经做到了,并且已经对其进行了测试。
唯一的问题是:尽管明确指出它只是用于测试,但人们(当然)花费了大量的时间和精力在没有signal
的版本中添加真实数据处理程序。
问题是:谁能想到一种从内存中抢救数据的方法?我以为发送SIGINT
会创建一个KeyboardInterrupt
,但显然不会。还有其他引入异常的方法吗?