使用python subprocess.call来杀死所有正在运行的python文件

时间:2012-03-11 12:08:33

标签: python kill subprocess

我正试图(根据需要)杀死目前正在运行的所有python进程 我正在使用这个命令:

from subprocess import call  
call('pkill python', shell=True)  
print 'Killed them all!'

但是,当然 - 我的程序也是一个python程序,所以最终,它在调用'call'后没有到达打印行。

我可以做些什么来避免我的程序同时杀死自己,同时杀死所有其他python进程? 感谢。

2 个答案:

答案 0 :(得分:6)

您可能想尝试跨平台psutil库:

import os
import psutil

mypid = os.getpid()
for proc in psutil.process_iter():
    if proc.name == 'python' and proc.pid != mypid:
        proc.kill()

答案 1 :(得分:0)

如果你呼叫pgrep python,你将能够读入所有正在运行的python进程的pids(进程标识符)。你可能想要subprocess.check_output

然后你可以通过pid杀死每个(使用os.kill),除了匹配你自己的pid的那个,你使用os.getpid找到它。