← Back to course

Processi e Monitoraggio del Sistema

Processi e Monitoraggio del Sistema

Bentornato.

Nella lezione precedente hai imparato a installare software dal terminale.

Ora dobbiamo rispondere a una domanda importante:

Cosa sta davvero girando su questa macchina?

Il computer può sembrare tranquillo.

Ma dentro ci sono processi, servizi, attività in background, schede del browser e una cosa misteriosa che usa il 40% della CPU senza motivo.

Oggi indaghiamo.

Cosa Imparerai

In questa lezione imparerai a:

La Missione

La tua missione è semplice:

Imparare a vedere cosa è in esecuzione, capire cosa usa le risorse del sistema e fermare un processo quando si comporta male.

Il terminale diventa la tua sala di controllo.

Molto serio.

Quasi NASA, ma con più caffè.

Che Cos’è un Processo?

Un processo è un programma in esecuzione.

Quando apri un browser, crea processi.

Quando apri un terminale, crea un processo.

Quando Linux esegue servizi in background, anche quelli sono processi.

Un processo ha un ID chiamato PID.

PID significa:

Process ID

Pensalo come il numero del processo.

Una targhetta identificativa, ma meno simpatica.

Mostrare il Processo della Shell Corrente

Esegui:

echo $$

Questo mostra il PID della shell corrente.

Potresti vedere qualcosa come:

24891

Quel numero è l’ID del processo della shell del tuo terminale.

Poco poetico.

Molto utile.

Elencare i Processi con ps

Per mostrare i processi collegati al terminale corrente, usa:

ps

Potresti vedere:

PID TTY          TIME CMD
24891 pts/0    00:00:00 zsh
24930 pts/0    00:00:00 ps

Questo mostra:

Per vedere più processi, usa:

ps aux

Questo mostra molti processi in esecuzione.

Forse troppi.

Non panico.

Linux ti sta solo mostrando il backstage.

Cercare un Processo

Puoi combinare ps con grep.

Per cercare firefox:

ps aux | grep firefox

Oppure node:

ps aux | grep node

Il simbolo | si chiama pipe.

Manda l’output di un comando dentro un altro comando.

Molto potente.

Un po’ magico.

Useremo le pipe più avanti.

Monitorare con top

Esegui:

top

top mostra l’attività del sistema in tempo reale.

Puoi vedere:

Per uscire da top, premi:

q

Ancora q.

Il mondo del terminale ama davvero quel tasto.

Monitorare con htop

Se hai installato htop nella lezione precedente, esegui:

htop

htop è più facile da leggere di top.

Mostra:

Per uscire:

q

Se htop non è installato, installalo.

Arch Linux

sudo pacman -S htop

Ubuntu o Debian

sudo apt install htop

Fedora

sudo dnf install htop

Controllare la Memoria

Per controllare la memoria, usa:

free -h

-h significa human-readable.

Perché numeri come 8283475968 non sono amichevoli.

Potresti vedere:

total        used        free      shared  buff/cache   available
Mem:          15Gi       4.2Gi       6.1Gi       500Mi       5.2Gi        10Gi
Swap:        4.0Gi          0B       4.0Gi

Colonne importanti:

Di solito available è più utile di free.

Linux usa memoria per cache perché è intelligente.

Non la sta sprecando.

Sta preparando snack per il lavoro futuro.

Controllare l’Uptime

Per vedere da quanto tempo il sistema è acceso, usa:

uptime

Potresti vedere:

15:42:18 up 3 hours, 2 users, load average: 0.42, 0.36, 0.30

Questo mostra:

Il load average mostra quanto il sistema è stato occupato.

Per ora non preoccuparti troppo.

Numeri molto alti possono significare che il sistema è sotto pressione.

Come un cameriere durante il pranzo della domenica in Italia.

Fermare un Processo con kill

A volte un processo si blocca.

A volte un programma non vuole chiudersi.

A volte il software diventa teatrale.

Prima trova il PID.

Per esempio:

ps aux | grep sleep

Creiamo un processo innocuo di test:

sleep 300

Questo comando aspetta 300 secondi.

Apri un altro terminale e cercalo:

ps aux | grep sleep

Trova il PID, poi fermalo:

kill PID_NUMBER

Esempio:

kill 24999

Sostituisci 24999 con il PID reale.

Fermare con Forza un Processo

Se kill normale non funziona, potresti vedere:

kill -9 PID_NUMBER

-9 è più forte.

Forza il processo a fermarsi.

Usalo con attenzione.

kill -9 non è una conversazione gentile.

È l’equivalente terminale di togliere la sedia mentre il processo è ancora seduto.

Fermare per Nome

Alcuni sistemi hanno pkill.

Esempio:

pkill firefox

Questo ferma processi per nome.

Attenzione.

Se esegui:

pkill node

potresti fermare tutti i processi Node.js.

Incluso il tuo server di sviluppo.

Il sito sparisce.

Tu ti confondi.

Il terminale non dice niente.

Classico.

Errori Comuni

Fermare il PID sbagliato

Controlla sempre prima:

ps aux | grep process-name

Leggi con attenzione.

Non uccidere processi a caso come un cowboy in un data center.

Usare sudo troppo in fretta

Se non riesci a fermare un processo, puoi provare:

sudo kill PID_NUMBER

Ma prima di usare sudo, chiediti:

Capisco che cos’è questo processo?

Se la risposta è no, rallenta.

Linux premia la pazienza.

Punisce le ipotesi eroiche.

Confondere l’uso della memoria

Linux può mostrare poca memoria libera.

Non sempre è un problema.

Controlla:

free -h

Guarda available.

Linux usa memoria per cache perché memoria inutilizzata è memoria sprecata.

Molto filosofico.

Molto efficiente.

Pratica

Prova questo:

ps
ps aux
top
free -h
uptime

Poi installa e avvia htop se serve:

htop

Rispondi:

  1. Che cos’è un processo?
  2. Che cos’è un PID?
  3. Quale comando mostra processi in tempo reale?
  4. Quale comando mostra l’uso della memoria?
  5. Cosa fa kill?

Mini Sfida

Crea un processo di test:

sleep 300

Poi, in un altro terminale:

  1. Trovalo con ps aux | grep sleep.
  2. Trova il suo PID.
  3. Fermalo con kill.
  4. Controlla che sia sparito.

Non usare kill -9 se kill normale funziona.

Oggi siamo professionisti.

Non pirati del terminale.

Riassunto

Oggi hai imparato che:

Ora puoi vedere cosa succede dentro il sistema.

Questo è un grande passo.

Non stai più solo usando Linux.

Lo stai guardando respirare.

Leggermente inquietante.

Molto utile.

Prossima Lezione

Nella prossima lezione impareremo comandi di rete come ping, curl, ip e ss.

Perché i computer non sono isole.

Parlano con altri computer.

A volte troppo.