0
我創建了一個類來啓動一些程序並在我完成任務後終止。 但似乎流連忘返。它具有設置和拆卸功能以及存儲過程的變量。啓動子流程並在完成時保存以殺死
現在我不在乎stdout & stderr。我只是認爲我需要包括這一點。
class ServerClient(object):
def __init__(self):
self.server_process = None
self.client_process = None
def setUp(self):
self.server_process = subprocess.Popen(
['python', 'servlet.py'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
self.client_process = subprocess.Popen(
['python', 'client.py'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
time.sleep(2)
def tearDown(self):
if self.server_process is not None:
try:
print "Killing Server"
self.server_process.terminate()
self.server_process.wait()
except OSError:
pass
self.server_process = None
if self.client_process is not None:
try:
print "Killing Client"
self.client_process.terminate()
self.client_process.wait()
except OSError:
pass
self.client_process = None
if __name__ == '__main__':
sc = ServerClient()
sc.setUp()
# Do stuff
sc.tearDown()
你如何使用你的課堂?它在哪裏掛? – Daniel
如果在管道的另一端沒有閱讀器,則該過程將一直等到存在。您不顯示任何讀取管道的代碼。 – cdarke
我在編輯中回答了上述兩個Qns。 – user3480774