2012-10-15 32 views
0

我有一個從python腳本運行的子進程,如果用戶終止python(ctrl + D或ctrl + Z或quit()),我想殺死這個進程。有沒有我可以在我的python腳本中定義的函數,它將在python腳本退出之前自動運行?python腳本終止時的運行語句

回答

4

您可以使用atexit模塊來註冊要運行的功能。除非腳本os._exit退出(它不應該),或者,除非腳本導致蟒蛇遇到了嚴重的錯誤(例如,分段錯誤),這通常不會發生,

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" 

這些功能將被運行,但如果您使用的是C擴展程序,可能會出現問題。