1
使用Python 2.6或2.7,我需要生成一個子進程:的Python:菌種子有幾個要求
- 必須超脫
- 它的輸出必須重定向
- 產卵Python進程必須打印子進程的PID,然後退出。
我已經通過了各種模塊(和各種Stackoverflow帖子),它似乎都與一個或多個這些要求相沖突。例如。 os.system()
=否pid;
subprocess.*
=要麼沒有重定向,要麼沒有分離。
使用Python 2.6或2.7,我需要生成一個子進程:的Python:菌種子有幾個要求
我已經通過了各種模塊(和各種Stackoverflow帖子),它似乎都與一個或多個這些要求相沖突。例如。 os.system()
=否pid;
subprocess.*
=要麼沒有重定向,要麼沒有分離。
通過detached我假設你的意思是你想讓你的腳本在啓動子進程後繼續運行,對嗎?如果是這樣,我相信你將不得不分叉,在子進程中啓動子進程並在那裏捕獲它的輸出。
import os
import subprocess
cmd = 'ls'
if os.fork() == 0:
process = subprocess.Popen(cmd, shell=True, stdin=None, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
print "subprocess pid: %d" % process.pid
stdout = process.communicate()
print stdout
else:
print 'parent...'