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=True
robi dużej różnicy?
cmd
wyglądasz Może zawierać polecenie, które uruchamia kilka procesów do uruchomienia. Nie jest więc jasne, o którym procesie mówisz.