Đây là suy nghĩ của tôi:Giết chết một quá trình tạo ra với subprocess.Popen Python()
Trước hết, tôi tạo ra một quá trình bằng cách sử dụng subprocess.Popen
Thứ hai, sau khi số tiền nhất định của thời gian, tôi đã cố gắng để giết nó bởi 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)
Tuy nhiên, "proc1" vẫn tồn tại sau Popen.kill(). Có thể chuyên gia nào cho tôi biết cách giải quyết vấn đề này không? Tôi đánh giá cao sự cân nhắc của bạn.
Nhờ nhận xét của tất cả các chuyên gia, tôi đã làm tất cả những gì bạn đề nghị nhưng kết quả vẫn giữ nguyên.
proc1.kill() #it sill cannot kill the proc1
os.kill(proc1.pid, signal.SIGKILL) # either cannot kill the proc1
Cảm ơn tất cả các bạn như vậy.
Và tôi vẫn đang chờ đợi trải nghiệm quý giá của bạn về việc giải quyết vấn đề nhạy cảm này.
Tại sao bạn cần "shell = True"? Nếu không có nó có vẻ như làm việc chính xác như thế nào bạn mong đợi. –
Thay vì đặt [Đã giải quyết] trong tiêu đề, vui lòng chọn câu trả lời chính xác khi nhấp vào biểu tượng dấu kiểm. – bluish
câu trả lời đúng là ở đây: http://stackoverflow.com/questions/4789837/how-to-terminate-a-python-subprocess-launched-with-shell-true –