Ecco il mio pensiero:Uccidere un processo creato con Python subprocess.Popen()
Prima di tutto, ho creato un processo utilizzando subprocess.Popen
In secondo luogo, dopo un certo periodo di tempo, ho provato di ucciderlo da 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)
Tuttavia, "proc1" esiste ancora dopo Popen.kill(). Alcuni esperti potrebbero dirmi come risolvere questo problema? Apprezzo le tue considerazioni.
Grazie ai commenti di tutti gli esperti, ho fatto tutto ciò che hai raccomandato, ma il risultato rimane lo stesso.
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Grazie lo stesso.
E sto ancora aspettando la tua preziosa esperienza per risolvere questo delicato problema.
Perché è necessario "shell = True"? Senza questo sembra funzionare esattamente come ti aspetteresti. –
Invece di mettere [Risolto] nel titolo, si prega di scegliere la risposta corretta cliccando sul simbolo di controllo. – bluish
risposta corretta è qui: http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true –