ฉันเปิดตัว subprocess ด้วยคำสั่งต่อไปนี้:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
อย่างไรก็ตามเมื่อฉันพยายามฆ่าโดยใช้:
p.terminate()
หรือ
p.kill()
คำสั่งยังคงทำงานในพื้นหลังดังนั้นฉันสงสัยว่าฉันจะยุติกระบวนการได้อย่างไร
โปรดทราบว่าเมื่อฉันเรียกใช้คำสั่งด้วย:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
p.terminate()
มันไม่ยุติเรียบร้อยแล้วเมื่อออก
shell=True
สร้างความแตกต่างใหญ่?
cmd
มีลักษณะอย่างไร มันอาจมีคำสั่งที่ก่อให้เกิดกระบวนการหลายอย่างที่จะเริ่มต้น ดังนั้นจึงไม่ชัดเจนว่าคุณพูดถึงกระบวนการอะไร