簡體   English   中英

Python3 進程未在 sys.exit() 上關閉

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM