这是我的想法:
首先,我使用subprocess.Popen创建了一个进程
第二,经过一段时间后,我试图通过Popen.kill杀死它()
import subprocess
import os, signal
import time
proc1 = subprocess.Popen("kvm -hda /path/xp.img", shell = True)
time.sleep(2.0)
print 'proc1 = ', proc1.pid
subprocess.Popen.kill(proc1)
Run Code Online (Sandbox Code Playgroud)
但是,"proc1"仍然存在于Popen.kill()之后.任何专家都可以告诉我如何解决这个问题吗?我很感激你的考虑.
感谢所有专家的评论,我做了你所做的一切,但结果仍然保持不变.
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Run Code Online (Sandbox Code Playgroud)
谢谢你们.
我仍然在等待你解决这个微妙问题的宝贵经验.
pyf*_*unc 29
在你的代码中它应该是
proc1.kill()
Run Code Online (Sandbox Code Playgroud)
两者kill或terminate都是Popen将信号发送signal.SIGKILL到进程的对象的方法.
只使用Popenkill方法
process = subprocess.Popen(
task.getExecutable(),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True
)
process.kill()
Run Code Online (Sandbox Code Playgroud)
使用 os.kill 怎么样?请参阅此处的文档:http ://docs.python.org/library/os.html#os.kill
| 归档时间: |
|
| 查看次数: |
107537 次 |
| 最近记录: |