martedì 19 luglio 2011

Bash script: Killare processi intercettandoli con grep

Supponiamo di voler uccidere dei processi in base al loro nome.Esempio:
Uccidere tutti i processi il cui nome contiene la parola "play"

ps aux | grep "play" | grep -v grep | awk '{print $2}' | xargs kill -9

Piccola spiegazione
ps aux: Mostra tutti i processi attivi
grep "play": Raggruppa solo le linee che contengono la parola "play"
grep -v grep: Toglie dal risultato le linee che contengono grep
awk '{print $2}': Stampa soltanto i valori della seconda colonna
xargs kill -9: xargs passa i valori letti dallo standard input e completa il comando kill -9 PID che invece uccide un processo

Ovviamente è possibile modificare il tutto in base alle vostre esigenze.