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=Truefare la differenza?
cmdaspetto? Potrebbe contenere un comando che avvia diversi processi da avviare. Quindi non è chiaro di quale processo parli.