這裏是我的想法:殺滅與Python的subprocess.Popen()創建的過程
首先,我使用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)
但是,「proc1」在Popen.kill()之後仍然存在。 是否有專家告訴我如何解決這個問題? 我很欣賞你的考慮。
感謝所有專家的評論,我做了所有你推薦的,但結果仍然保持不變。
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
謝謝大家都是一樣的。
而我仍在等待您解決這個棘手問題的寶貴經驗。
爲什麼你需要「shell = True」?沒有這個,它看起來正如你所期望的那樣工作。 – 2010-11-04 05:16:09
不要在標題中放置[已解決],請選擇正確答案並單擊檢查符號。 – bluish 2010-12-20 16:41:32
正確的答案在這裏:http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true – 2013-01-11 06:12:01