[英]Python3 process not closing on sys.exit()
所以我正在做一個項目,現在在 python2 中,下面的代碼工作正常。 但我想升級到 python3,因為不再支持 python2。 所以在pin_event_down 函數的一個進程中,備份就開始了。 備份進程和函數正在啟動一些數據記錄線程,然后它應該被關閉/終止。 在 python2 中 sys.exit() 工作正常,在閱讀 python 文檔時,他們說你應該使用 system.exit() 有沒有人知道為什么這個過程永遠不會結束? 此外,每次特定引腳斷開時,它會再次使用相同的 RAM 內存再次創建進程,從而用 1 個進程的雙倍填充 ram。
def pin_event_down(self):
"""
This function is used to create a product pin event.
@return: None.
"""
#do some stuff
Process(target=self.backUp).start()
#do some stuff
def backUp(self):
"""
This function is used to create a backup feedback log.
@return: None.
"""
if product is not None:
self.logger.__init__()
self.logger.start()
#do some stuff
sys.exit()
我認為這是因為您從進程中調用 sys.exit() 。 那只會終止當前進程,而不是父進程。 一個非常混亂的方法是在進程中使用os._exit(1)
,但這是危險的,所以我不推薦它。
此線程可能對您有所幫助: 如何從 Python 線程退出整個應用程序?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.