2012-10-04 83 views
1

當使用Python的多,什麼是保證代碼每當進程退出(既乾淨或致命錯誤。)蟒蛇多 - 運行邏輯,當進程終止

如果我寫這封信將運行到清理的正確方法我進程繼承自Process對象,我應該將該功能放在對象的__del__方法中嗎?我嘗試將簡單的日誌語句放入terminate,但腳本收到SIGHUP或KeyboardInterrupt時似乎沒有執行。

回答

1

Python有atexit-處理程序,這在我的經驗中是非常可靠的。

+0

是啊 - IIRC,'atexit'雖然不處理信號。 – senderle

+0

@senderie:你說得對。信號不由python處理,將繞過atexit處理程序。我想有可能爲這些情況編寫信號處理程序。文檔包含所有的小字體。 – mirk