-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