Estou iniciando um subprocesso com o seguinte comando:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
No entanto, quando tento matar usando:
p.terminate()
ou
p.kill()
O comando continua sendo executado em segundo plano, então eu queria saber como posso realmente finalizar o processo.
Observe que quando executo o comando com:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
Ele termina com êxito ao emitir o arquivo p.terminate()
.
shell=True
faz uma grande diferença?
cmd
aparência? Pode conter um comando que aciona vários processos a serem iniciados. Portanto, não está claro de qual processo você fala.