Sto avviando un sottoprocesso con il seguente comando:
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
Tuttavia, quando provo a uccidere usando:
p.terminate()
o
p.kill()
Il comando continua a essere eseguito in background, quindi mi chiedevo come posso effettivamente terminare il processo.
Si noti che quando eseguo il comando con:
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
Si interrompe correttamente durante l'emissione del file p.terminate()
.
shell=True
fare la differenza?
cmd
aspetto? Potrebbe contenere un comando che avvia diversi processi da avviare. Quindi non è chiaro di quale processo parli.