有没有办法用python启动/停止linux进程?
答
使用子模块的简单函数:
def CMD(cmd) :
p = subprocess.Popen(cmd, shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=False)
return (p.stdin, p.stdout, p.stderr)
答
这是一个小小的python脚本,它启动一个进程,检查它是否正在运行,等待一段时间,杀死它,等待它终止,然后再次检查。它使用'kill'命令。 python子进程的版本2.6有一个kill函数。这是写在2.5。
import subprocess
import time
proc = subprocess.Popen(["sleep", "60"], shell=False)
print 'poll =', proc.poll(), '("None" means process not terminated yet)'
time.sleep(3)
subprocess.call(["kill", "-9", "%d" % proc.pid])
proc.wait()
print 'poll =', proc.poll()
定时输出显示它在大约3秒后终止,而不是60表示睡眠呼叫提示。
$ time python prockill.py
poll = None ("None" means process not terminated yet)
poll = -9
real 0m3.082s
user 0m0.055s
sys 0m0.029s
您可以用'os.kill(..)'杀掉进程 – 2015-03-11 16:00:53
甚至'proc.terminate()'或'proc.kill()'因为Python 2.6 – 2015-03-11 16:27:59