Identificare processi in Linux con pgrep
Tutti conoscono il comando grep, ma non tutti conoscono pgrep.
Bene, questo utile comando (che trovate anche in Mac OS X) è acronimo di process grep, e permette di identificare i processi usando particolari filtraggi.
In genere per queste cose viene usato il comando ps, ma pgrep risulta più flessibile.
Vediamo qualche esempio.
Vogliamo ottenere la lista dei processi dell'utente riguardanti Cinnamon con i PID separati da virgola:
$ pgrep -u matte cinnamon* -d ", "
2108, 2176, 2277, 2279, 2347
Con l'opzione -d diciamo di separare i vari PID con una virgola.
Se volessimo fare la stessa cosa con ps:
$ ps aux |grep "^matte"|grep cinnamon
matte 2108 0.0 0.5 465988 47172 ? Ssl 09:54 0:00 cinnamon-session --session cinnamon
matte 2176 0.0 0.8 889040 65932 ? Sl 09:54 0:00 /usr/lib/cinnamon-settings-daemon/cinnamon-settings-daemon
matte 2271 0.0 0.4 450332 37260 ? Sl 09:54 0:00 /usr/lib/cinnamon-settings-daemon/csd-printer
matte 2277 0.0 0.6 335196 56816 ? Sl 09:54 0:00 /usr/bin/python2 /usr/bin/cinnamon-launcher
matte 2279 2.5 3.9 1887880 319316 ? Sl 09:54 0:53 cinnamon --replace
matte 2347 0.0 0.5 464492 47604 ? Sl 09:54 0:00 cinnamon-screensaver
matte 2783 0.0 0.0 11204 2352 pts/0 S+ 10:29 0:00 grep cinnamon
Il comando risulta un pò più scomodo, e soprattutto non a portata dei newbie.
Altra comodità è quella di ottenere facilmente il comando completo di un determinato programma:
$ pgrep -fl cinnamon
2108 cinnamon-sessio
2176 cinnamon-settin
2271 csd-printer
2277 cinnamon-launch
2279 cinnamon
2347 cinnamon-screen
L'unica cosa che non capisco bene è perchè alcune righe risultino troncate; ma diciamo che nel complesso si capiscono bene.
Direi che è tutto!
Buona immacolata a tutti!
linux pgrep grep ps process grep pid
Commentami!