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 [ 6:20PM]
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 [ 6:20PM]
michele@delta:~ % ps auxw | grep -i yes [ 6:21PM]
michele 92934 0.0 0.0 2425480 244 s005 R+ 6:22PM 0:00.00 grep -i yes
Gli autuori 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 [ 6:28PM]
93026
93053pkill <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 [ 6:28PM]
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.