“标签”表示能够通过“标签”杀死它的进程

时间:2016-06-21 22:05:31

标签: python python-2.7

我需要一次运行更多的播放器程序(在linux中),但我想分别通过子进程杀死它。所以我在考虑为每个播放器进程添加“标签”,例如我启动它时,例如玩家“1”,玩家“2”,玩家“3”,玩家“3”,玩家“3”然后我想调用子进程来杀死玩家“3”的所有实例。

怎么做?

1 个答案:

答案 0 :(得分:0)

如果您的所有标签都是唯一的,您只需将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)