Gestione dei processi di sistema: ps
, top
, htop
1. Comando ps
— uno sguardo statico ai processi
Se Linux fosse un ristorante, il processo sarebbe lo chef in cucina. Questo è un esemplare eseguibile di un programma che esiste in memoria. Quando avvii un'applicazione o un file eseguibile dalla command line, si crea un processo che poi esegue i suoi compiti fino al completamento.
Dal punto di vista della programmazione, i processi sono gestiti dal kernel di Linux e ognuno ha un identificatore univoco — PID (Process ID).
Il comando ps
(process status) è un comando base per visualizzare l'elenco dei processi. Fornisce un'istantanea statica dei processi attivi nel sistema. Con ps
puoi ottenere informazioni sui processi in esecuzione: i loro ID, il proprietario, la command line, e le risorse utilizzate.
Sintassi di base
Ecco come appare un comando base:
ps
Questo ti mostrerà i processi in esecuzione nel terminale corrente.
Ma che noia! Rendiamolo più interessante:
ps aux
Qui:
a
— mostra i processi di altri utenti.u
— aggiunge un formato più leggibile.x
— include i processi che non sono collegati a un terminale.
Esempio di output:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 22556 1044 ? Ss 12:34 0:01 /sbin/init
student 2345 0.1 0.2 34567 2048 pts/0 S+ 12:35 0:02 bash
student 4567 0.3 0.5 56789 5144 pts/0 R+ 12:36 0:03 ps aux
- USER: l'utente che ha avviato il processo.
- PID: identificatore del processo.
- %CPU: percentuale di utilizzo della CPU.
- %MEM: percentuale di utilizzo della memoria.
- COMMAND: il comando che ha avviato il processo.
Opzioni avanzate
Visualizza una struttura ad albero dei processi:
ps -ejH
Questo aiuta a capire quali processi sono "figli" di altri processi.
Filtro per PID:
ps -p 1234
Dove
1234
è il tuo PID. Mostra solo il processo specificato.Mostra tutti i processi insieme alla command line completa:
ps -ef
2. Comando top
— monitoraggio dinamico dei processi
top
è come una TV per i processi. Puoi osservare come i processi cambiano in tempo reale. Se stai avviando un server o il tuo computer ha iniziato a "rallentare", top
è il tuo migliore amico. Attraverso di esso puoi vedere quali processi consumano più CPU e memoria.
Basi di utilizzo
Semplicemente digita nel terminale:
top
Esempio di output:
- La riga superiore mostra il "carico" sul sistema.
- La parte centrale riporta le attività (totale, attive, dormienti, zombie).
- La parte inferiore è dedicata alla memoria.
- Il blocco inferiore è una lista di processi, con tante informazioni utili, inclusi PID, USER, %CPU e COMMAND.
Navigazione in top
- Premi
k
per terminare un processo. Inserisci il PID. - Premi
P
per ordinare i processi in base alla CPU. - Premi
M
per ordinare in base all'utilizzo della memoria. - Premi
q
per uscire.
3. Utility htop
— interfaccia conveniente
Se top
ti sembra troppo "grezzo", benvenuto in htop
. È un'interfaccia visiva per monitorare i processi. È colorata, supporta il mouse ed è comprensibile in modo umano.
Installazione
Se htop
non è installato, aggiungilo:
sudo apt-get install htop # Per distribuzioni basate su Debian
sudo yum install htop # Per distribuzioni basate su RedHat
Esecuzione
Per avviare htop
, basta digitare:
htop
Esempio di interfaccia:
Vantaggi di htop
:
- Possibilità di scorrere l'elenco dei processi.
- Evidenziazione dei colori per CPU, memoria, swap.
- Tasti comodi per terminare i processi (ad esempio,
F9
).
4. Compito pratico
Compito 1: Trova il processo più "esigente"
- Apri
top
ohtop
. - Ordina i processi per CPU e scopri il suo PID.
Compito 2: Termina il processo
- Usa
kill
per "uccidere" il processo:kill <PID>
Compito 3: Analisi del processo
- Usa
ps
per analizzare il PID del processo:ps -p <PID> -o pid,user,%cpu,%mem,cmd
Trappole e raccomandazioni
- Non uccidere processi se non sei sicuro che non siano critici per il funzionamento del sistema. Ad esempio, il processo con PID 1 — è init, la base del sistema operativo.
- Lo strumento
htop
deve essere installato separatamente se non è presente. Se il comando non si avvia, controlla l'installazione. - Fai attenzione ai privilegi. Terminare i processi avviati da un altro utente potrebbe richiedere i diritti di amministratore.
In pratica vedrai che questi strumenti rendono il lavoro con Linux incredibilmente flessibile e visivo. Ora sei il capo dei processi!
GO TO FULL VERSION