Monitorare i processi i comandi PS e TOP

Monitorare i processi i comandi PS e TOP

Linux offre ampia possibilità di gestione dei processi in esecuzione. Abbiamo già visto come mandare un processo in esecuzione “dietro le quinte”, come stoppare un processo e come spostarlo da background a foreground. In questa lezione proseguiamo nel nostro percorso alla scoperta di come monitorare i processi nel nostro sistema opertivo attraverso l’analisi dei comandi ps e top.

Il comando ps
Al fine di monitorare i processi in esecuzione sul sistema è possibile far ricorso al comando ps.

Il comando da Shell noto come ps (process state), ci mostra lo stato dei processi in corso all’interno del sistema; in pratica, lanciando il comando ps viene visualizzata una lista dei processi correnti; vediamo un possibile output di ps:

$ ps
PID TT TIME CMD
19480 00 0:00 ps
ps specificato senza ulteriori opzioni ci restituisce l’elenco sintetico dei processi appartenenti all’utente e controllati mediante il terminale in uso.

Potremo in ogni caso utilizzare gli argomenti ax e aux per ottenere una lista più completa:

ax mostra i processi relativi a tutti gli utenti (-a) ed anche non controllati dl terminale (-x);
aux identico ad ax ma permette di visualizzare anche le user (-u) degli utenti a cui appartengono i processi in esecuzione.
Il risultato dell’istruzione può essere particolarmente lungo, in questo caso potremo utilizzare less e more per impaginare l’output prodotto:

ps aux | less
Se invece vogliamo sapere se un determinato processo è in esecuzione senza dover scorrere tutta la lista, possiamo utilizzare grep in questo modo:

ps ax | grep mysql
Si noti come si sia fatto ricorso al carattere pipe per indirizzare lo stdout di ps verso il comando grep.

Il comando top
ps produce un’immagine statica dei processi in corso, in pratica fotografa lo stato del sistema al momento in cui viene lanciata l’istruzione di monitoraggio delle esecuzioni.
Se si desidera ottenere un output più particolareggiato, dinamico e aggiornabile sarà necessario utilizzare il comando top; l’output di top consente di visualizzare tutti processi correnti e le relative informazioni rilevanti come per esempio il carico sulla CPU.

A corredo di top abbiamo una serie di utili opzioni introducibili semplicemente premendo sulla voce corrispondente nella tastiera:

k: ferma un processo
n: mostra il numero dei processi visualizzati sulla base di una cifra specificata dall’utente
u: ordina l’elenco dei processi per utente
P: ordina l’elenco dei processi per quantità di CPU utilizzata
M: ordina l’elenco dei processi per quantità di memoria impiegata
Barra spaziatrice: aggiorna l’elenco dei processi
q: esce da top