-3
我需要一次運行更多的播放器程序(在Linux中),但我想通過子進程單獨殺死它。所以我正在考慮爲每個玩家進程添加「標籤」,例如,玩家「1」,玩家「2」,玩家「3」,玩家「3」,玩家「3」,然後我想調用子過程殺死所有玩家「3」的實例。「標籤」進程能夠通過「標籤」來殺死它
如何做到這一點?
我需要一次運行更多的播放器程序(在Linux中),但我想通過子進程單獨殺死它。所以我正在考慮爲每個玩家進程添加「標籤」,例如,玩家「1」,玩家「2」,玩家「3」,玩家「3」,玩家「3」,然後我想調用子過程殺死所有玩家「3」的實例。「標籤」進程能夠通過「標籤」來殺死它
如何做到這一點?
如果您的所有標籤都是唯一的,您可以簡單地將popen
實例保存在以標籤爲關鍵字的字典中。
import subprocess
process_dict = {}
def startNewProcess(command, label):
p = subprocess.Popen(command, shell=True)
process_dict[label] = p
def killProcess(label):
if label in m_process_dict:
p = process_dict.pop(label)
p.terminate()
如果過程標籤將不會是唯一的,或者如果你想有每個進程的多個標籤,它可能是更好的使用列表和保存的進程和標籤。
import subprocess
process_list = {}
def startNewProcess(command, labels):
p = subprocess.Popen(command, shell=True)
process_list.append({'process':p, 'labels':labels})
def killProcess(label):
for ii, entry in enumerate(process_list):
if label in entry['labels']:
entry['process'].terminate()
process_list.remove(ii)
執行更多玩家實例謝謝!這看起來應該可以解決它。 – peter
你是什麼意思*一次有更多的玩家程序*? –
,我通過subprocess.popen – peter