Archivio

Posts Tagged ‘unix shell’

Script “killall” evoluto

In LINUX esiste il comando killall che permette di terminare tutti processi con un determinato nome di eseguibile. Tuttavia il comando può lavorare solo sul nome dell’eseguibile e non su altre parti della stringa di comando con la quale si è lanciato il processo. Ad esempio se lanciamo diversi istanze di uno programma Python il comando killall non permette di uccidere tuttte le istanze di quello specifico script perche l’eseguibile è il comado python e non il nome dello script in questione.

Per ovviare al problema si può utilizzare il seguente script

PROC_NUM=`pgrep -f  $1`
for P in $PROC_NUM
do
  kill -9 $P
done 


N.B.: Gli apicetti della prima linea non sono quelli presenti sulla tastiera italiana assieme al punto interrogativo in alto a destra; per formarli bisogna eseguira la sequenza Alt+96 con il numero scritto sul tastierino numerico.