有没有办法启动/停止与Python的Linux进程?

我希望能够启动一个进程,然后能够杀死它

Solutions Collecting From Web of "有没有办法启动/停止与Python的Linux进程?"

看看subprocess模块。 你也可以通过os模块使用像fork()这样的底层基元。

这里有一个小小的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 

一个使用子进程模块的简单函数:

 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) 

请参阅原始fork()和模块子进程 , 多处理 , 多线程的文档

如果您需要与子进程交互,我推荐pexpect模块( 链接文本 )。 你可以发送输入到进程,接收(或“期望”)输出,你可以关闭进程(用force = True发送SIGKILL)。