Uruchamiam podproces za pomocą następującego polecenia:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
Jednak gdy próbuję zabić za pomocą:
p.terminate()
lub
p.kill()
Polecenie działa w tle, więc zastanawiałem się, jak mogę faktycznie zakończyć proces.
Zauważ, że kiedy uruchamiam polecenie z:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
To kończy się pomyślnie podczas wydawania p.terminate().
shell=Truerobi dużej różnicy?
cmdwyglądasz Może zawierać polecenie, które uruchamia kilka procesów do uruchomienia. Nie jest więc jasne, o którym procesie mówisz.