Quando ci si trova davanti ad un terminale e si deve operare sui processi, si filtra l’output di ps auxw con grep (ed eventualmente con kill). Ad esempio:

michele@delta:~ % ps auxw | grep -i yes
michele  92888   8.7  0.0  2434788   372 s002  S+   6:20PM   0:00.52 yes
michele  92914   0.0  0.0  2425580   296 s005  R+   6:20PM   0:00.00 grep -i yes

In alcuni casi, l’operazione più comune che segue la grep è quella di kill:

michele@delta:~ % kill -9 92888
michele@delta:~ % ps auxw | grep -i yes
michele  92934   0.0  0.0  2425480   244 s005  R+   6:22PM   0:00.00 grep -i yes

Gli autori di proctools hanno pensato bene di introdurre 3 utility che ci possono venire incontro per questi casi:

  • pgrep <pattern>: effettua una ricerca all’interno dei processi attivi, ritorna il PID dei processi che matchano il pattern specificato come argomento:

    michele@delta:~ % pgrep yes
    93026
    93053
    
  • pkill <pattern>: è l’equivalente di kill (quindi bisogna specificare il tipo di signal da passare al processo) ma applicato ai processi: assicuratevi di specificare un pattern univoco, perché tutti i processi che matchano il pattern riceveranno il kill:

    michele@delta:~ % pkill -9 yes
    

proctools (il pacchetto che contiene i due comandi citati) è (solitamente) installato di default su Linux (se non è così, cercate proctools tra i pkg della vostra distro). Su MacOSX, invece, va installato (ma scriverò un post a riguardo). L’utilizzo che ve ne ho descritto è basic: per ulteriori informazioni, vi rimando alla manpage.