proctools: (pgrep, pkill): gli strumenti per operare sui processi

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
    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 [ 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.

Leave a Reply