La gestione dei processi in un sistema GNU/Linux è essenziale ed importante al fine di amministrare tutto consapevolmente. In molti casi i processi nascono, vivono e muoiono senza alcun intervento esterno, ma in alcune occasioni si verificano delle anomalie che costringono l’amministratore di sistema ad un azione tempestiva.
Cosa si intende per processo?
Ogni programma, comando o script avviato nel sistema è un processo. Prima di mostrare gli strumenti di “monitoring” dei processi definiamo alcuni concetti:
- Tempo di vita: il tempo necessario di un processo per l’esecuzione. Per esempio per il comando ls o cd il tempo di esecuzione è cortissimo. Per quanto riguarda il tempo di esecuzione di un comando cp dipende dal quantitativo di dati da copiare e così via.
- ID del processo: quando un processo si avvia ad esso viene attribuito un numero o Process ID (PID).
- UID & GID: ad ogni processo viene associato l’utente (UID) e il gruppo (GID) che ha lanciato il processo.
- Processo Padre: il primo processo che avvia il kernel è il processo init che ha ovviamento un numero di PID uguale a 1. Tutti i processi successivi ad init sono considerati sotto-processi o figli.
- ID del processo padre: numero ID del padre che ha generato il processo o più figli con numero PID successivo.
Questi concetti sono importanti per una gestione approfondita dei processi.
GLI STRUMENTI DI MONITORING
Adesso, è il momento degli strumenti di “monitoring” e in particolare dei comandi o utility ps, pstree e top. Per quanto riguarda il primo comando e cioè ps, ad esso possono essere associate le seguenti opzioni:
Opzione | Azione |
-a | Visualizza i processi degli utenti correnti |
-f | Formato esteso delle informazioni |
-l | Formato “lungo” delle informazioni |
-u | Formato “utente” delle informazioni |
-w | Formato “Wide” delle informazioni |
-x | Include i processi non legati ai terminali |
-C cmd | Visualizza le istanze del comando cmd |
-U utente | Visualizza i processi di un utente |
Inserendo da shell il comando ps senza alcuna opzione dovrebbero apparire una serie di processi appartenenti all’utente che ha avviato il comando e “legati” al suo terminale. Utilizzando una estensione più complessa del comando e cioè ps aux vengono visualizzati tutti i processi degli altri utenti e anche quelli non “legati” ai terminali. Se, per qualche ragione si è interessati ad un processo legato ad un comando si può utilizzare l’opzione -C come di seguito descritto:
# ps u -C cp
Al posto dell’opzione -C si può utilizzare anche il seguente comando per visualizzare tutti i processi legati al comando cp:
# ps aux | grep cp
Per ora, la prima parte è terminata, spero di avervi incuriosito, e naturalmente attendete la seconda parte che sarà molto più interessante!
Se desiderate altri articoli, per fare in modo che il sito continui a vivere, versate un piccolo contributo in Bitcoin al seguente indirizzo. Un contributo per scrivere di più al fine di migliorare la qualità degli articoli.
Indirizzo BTC: 3EJZiSmqRkoZ48ae2pYbKupMYQqoQvxdxe