我有一个从python脚本运行的子进程,如果用户终止python(ctrl + D或ctrl + Z或quit()),我想杀死这个进程。我可以在我的python脚本中定义一个函数,它将在退出python脚本之前自动运行吗?
答案 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扩展,那就可以了。