首頁 > 後端開發 > Python教學 > 如何在 Python 中運行分離的後台進程?

如何在 Python 中運行分離的後台進程?

Mary-Kate Olsen
發布: 2024-12-13 09:36:17
原創
655 人瀏覽過

How to Run Detached Background Processes in Python?

如何在Python 中啟動分離的後台進程

在後台運行進程對於Python 中的長時間運行或非交互式任務關重要。原始 shell 腳本使用「&」運算子來啟動進程,即使在腳本完成後,這些進程也會繼續執行。在 Python 中,實現類似的結果需要了解守護程式和適當的進程管理模組。

使用子進程模組

在 Python 中處理後台進程的建議方法是子流程模組。雖然 jkp 的解決方案很實用,但 subprocess 模組提供了更大的靈活性,並且與當前文件建議保持一致。

對於簡單指令,subprocess 模組的用法模仿 shell 腳本中的「&」運算子。考慮以下範例來啟動一個在背景刪除檔案的新進程:

import subprocess
subprocess.Popen(["rm", "-r", "some.file"])
登入後複製

執行注意事項

呼叫.communicate() 方法從Popen 傳回的物件將阻塞主程序,直到後台程序完成。如果您希望後台程序保持分離,請避免呼叫 .communicate()。以下是此行為的說明:

import subprocess
ls_output = subprocess.Popen(["sleep", "30"])
ls_output.communicate()  # Blocks for 30 seconds
登入後複製

對於更高級的用例,子流程文件提供了有關流程管理的全面指導,包括輸入/輸出重定向和錯誤處理。

值得澄清這裡的「後台」指的是運行進程而不阻止其執行的 shell 概念,而不是作業系統意義上的守護程序的真正概念。

以上是如何在 Python 中運行分離的後台進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板