我正在创建一个命令,该命令将使用某个进程的部分或全名,并杀死其最低的pid-从而从中生成其余的进程。我的代码返回的min(list_of_process_ids)为0,其中没有min为0。请向我说明为什么发生这种情况。谢谢。
#!/usr/bin/env python
"""Kill proceses by partial name matching"""
import os, sys
def usage():
return ("pskill.py process_name")
def pids(proc):
""" Find the processes"""
procs = []
procs = os.system("ps -ef|grep -i " + proc + "|grep -v grep|grep -v pfind|awk '{print $2}'")
procs = [int(x) for x in str(procs)]
return procs
def kill(procs):
ppid = min(procs)
os.system("kill " + str(ppid))
return ("Processes Killed...")
def main():
if len(sys.argv) != 2:
print (usage())
else:
proc = sys.argv[1]
pids(proc)
kill(pids(proc))
main()
答案 0 :(得分:2)
您没有抓住stdout
,因此实际上除了命令的存在状态之外,您什么都没有得到。可以高兴的是0 :-)
尝试使用the subprocess module。特别是通过将结果传递到python控制台的stdout选项...