簡體   English   中英

將python子進程調用為守護進程並退出

[英]Call a python subprocess as daemon and exit

我正在使用一對python程序,其中一個應該調用第二個。

但是這應該以第一個程序使第二個程序成為守護程序(或在后台進程中運行),然后退出而不等待第二個程序結束的方式完成。

這在Python中可行嗎?

我一直在看os.fork,子進程模塊,但我很困惑,因為正確的方法來實現這個...

您可以使用subprocess.Popen

import subprocess

cmd = ['/usr/bin/python', '/path/to/my/second/pythonscript.py']
subprocess.Popen(cmd)

您可能希望將stdoutstderr重定向到某個位置,您可以通過將stdout=<file_obj>傳遞給Popen構造函數來實現。

“守護進程”具有比“后台進程”更具體的定義。 默認情況下, Popen將執行一個子Popen並將控制權交還給程序以繼續運行。 但是,這沒有說明處理信號(特別是,如果用戶在后台進程完成之前退出shell)或斷開stdin,stderr,stdout以及在調用Popen時打開的任何其他文件描述符。 如果你真的想要一個守護進程,那么你應該使用python-daemon模塊,這是PEP 3143的一個實現。它可以處理你不想考慮的大部分內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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