我正试图(根据需要)杀死目前正在运行的所有python进程 我正在使用这个命令:
from subprocess import call
call('pkill python', shell=True)
print 'Killed them all!'
但是,当然 - 我的程序也是一个python程序,所以最终,它在调用'call'后没有到达打印行。
我可以做些什么来避免我的程序同时杀死自己,同时杀死所有其他python进程? 感谢。
答案 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
找到它。