Aquí está mi pensamiento:Matar a un proceso creado con subprocess.Popen de Python()
En primer lugar, he creado un proceso mediante el uso de subprocess.Popen
En segundo lugar, después de cierta cantidad de tiempo, he intentado para matarlo por 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)
Sin embargo, "proc1" todavía existe después de Popen.kill(). ¿Algún experto me podría decir cómo resolver este problema? Aprecio sus consideraciones.
Gracias a los comentarios de todos los expertos, hice todo lo que recomendó, pero el resultado sigue siendo el mismo.
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Gracias a todos lo mismo.
Y todavía estoy esperando su preciosa experiencia para resolver este delicado problema.
¿Por qué necesita el "shell = True"? Sin esto, parece funcionar exactamente como esperas. –
En lugar de poner [Resuelto] en el título, elija la respuesta correcta haciendo clic en el símbolo de verificación. – bluish
propia respuesta está aquí: http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-lachedched-with-shell-true –