3
我對在Python應用程序中安裝退出處理程序的許多不同方式有點困惑。有atexit.register()
和signal.signal(SIG, handler)
,但我不確定哪一個是我的情況下使用的權利。Python退出處理程序
我有一個從命令行啓動的主進程,它產生許多其他子進程作爲守護進程。然後它會等待,直到完成。子進程運行一個無限循環(可以通過一個標誌突破,但不知道如何觸發該標誌)。當主進程通過CTRL + C關閉或接收到kill信號時,我想在子進程中調用一些清理代碼。
給出2個退出處理程序方法(或者可能還有更多),實現此目的的最佳方式是什麼?
它會工作到信號掛鉤中的'sys.exit()'並將cleaup留給'atexit'嗎?這不應該滿足所有情況(正常退出和強制退出)嗎?我怎樣才能抓住'SIGKILL'(如果有的話)? – orange