python脚本终止时运行语句

时间:2012-10-15 14:52:19

标签: python subprocess

我有一个从python脚本运行的子进程,如果用户终止python(ctrl + D或ctrl + Z或quit()),我想杀死这个进程。我可以在我的python脚本中定义一个函数,它将在退出python脚本之前自动运行吗?

1 个答案:

答案 0 :(得分:4)

您可以使用atexit模块注册要运行的功能。

import atexit

def bar():
   print "World"
atexit.register(bar)

#atexit.register also can be used as a decorator since it returns
# the function:
@atexit.register
def foo():
   print "Goodbye"

除非脚本以os._exit退出(它不应该),否则将运行这些函数,或者除非脚本导致python遇到严重错误(例如分段错误),这通常不会发生,但是如果你正在使用有问题的C扩展,那就可以了。