Voici ma pensée:Tuer un processus créé avec subprocess.Popen() Python
Tout d'abord, je créé un processus en utilisant subprocess.Popen
En second lieu, après un certain laps de temps, j'ai essayé de le tuer par 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)
Cependant, "PROC1" existe encore après Popen.kill(). Des experts peuvent-ils me dire comment résoudre ce problème? J'apprécie vos considérations. Grâce aux commentaires de tous les experts, j'ai fait tout ce que vous avez recommandé, mais le résultat reste le même.
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Merci tout de même.
Et j'attends toujours votre expérience précieuse pour résoudre ce problème délicat.
Pourquoi avez-vous besoin de "shell = True"? Sans cela, il semble fonctionner exactement comme vous l'attendriez. –
Au lieu de mettre [Résolu] dans le titre, veuillez choisir la bonne réponse en cliquant sur le symbole du chèque. – bluish
bonne réponse est ici: http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true –