
⏱️ Tempo stimato di lettura: 15 minuti
🧩 Difficoltà: Intermedia
🎯 Obiettivi della lezione:
- Comprendere i processi nel sistema operativo Linux
- Imparare a gestire e monitorare processi tramite Bash
- Utilizzare comandi specifici per controllare esecuzioni in background e foreground
- Terminare processi problematici in modo efficace
🔷 Introduzione ai Processi Linux
Linux è un sistema operativo multitasking, ovvero capace di eseguire contemporaneamente numerosi programmi e processi. Ogni volta che avvii un’applicazione o esegui un comando da terminale, il sistema genera un processo dedicato. I processi possono interagire tra loro e utilizzare le risorse di sistema, come CPU, memoria e spazio disco.
Ogni processo è identificato univocamente tramite un PID (Process ID), un numero assegnato automaticamente dal sistema operativo al momento della sua creazione.
🔷 Comandi di base per la gestione dei processi
Comando ps
ps permette di visualizzare rapidamente lo stato corrente dei processi attivi nel sistema. L’opzione più comune è:
ps aux
a: mostra i processi di tutti gli utentiu: visualizza il proprietario dei processix: include i processi non associati ad alcun terminale
Comando top
top mostra una panoramica dinamica in tempo reale dei processi attivi e del loro utilizzo delle risorse di sistema:
top
Interfaccia semplice e informativa, utile per monitoraggio rapido.
Comando htop
htop è una versione avanzata di top con un’interfaccia più user-friendly:
htop
Installalo se non presente:
sudo apt install htop
🔶 Esempio pratico: Monitoraggio dei processi con htop
Per usare htop:
- Apri il terminale
- Digita
htop
Naviga con le frecce per analizzare i processi in esecuzione, ordina premendo F6 e usa F9 per terminare un processo.
🔷 Esecuzione in Foreground e Background
Un processo può essere eseguito in due modalità principali:
- Foreground: Il terminale rimane bloccato fino alla conclusione del processo.
- Background: Il processo viene eseguito “dietro le quinte”, lasciando libero il terminale per altri comandi.
Avvio di processi in background
Per eseguire un comando in background, usa & alla fine del comando:
wget https://example.com/file.tar.gz &
Il processo sarà avviato e il terminale sarà immediatamente disponibile.
Sospensione e gestione dei processi in esecuzione
Se hai avviato un processo in foreground e vuoi spostarlo in background:
- Premi
CTRL+Zper sospendere temporaneamente. - Digita
bgper riprendere l’esecuzione in background.
Per riportare il processo in primo piano:
fg
🔶 Esempio pratico: Gestione avanzata dei processi
Esegui in foreground il seguente comando:
sleep 100
Premi CTRL+Z per sospendere, digita bg per mandarlo in background, e verifica lo stato con:
jobs
Vedrai l’elenco dei processi in background con relativi ID.
Riporta il processo in foreground usando:
fg %1
(%1 corrisponde all’ID visualizzato con il comando jobs).
🔷 Terminare i Processi con kill
Se hai bisogno di terminare un processo, puoi usare il comando kill seguito dal PID del processo stesso:
kill 12345
Per terminare un processo in modo forzato quando non risponde:
kill -9 12345
Usa sempre l’opzione forzata con attenzione, poiché potrebbe comportare perdita di dati non salvati.
🔶 Esempio pratico: Identificazione e Terminazione di un processo
- Trova il PID con:
ps aux | grep nome_processo
- Termina il processo con:
kill PID
🟢 Esercizio finale
Obiettivo: Mettere in pratica la gestione avanzata dei processi con Bash.
- Apri un terminale.
- Esegui il comando
sleep 120in background. - Utilizza
ps,topohtopper trovare il PID del processo. - Riporta il processo in foreground, quindi terminalo usando il comando
kill.
Scrivi nei commenti il PID del processo e descrivi brevemente come hai proceduto.
📩 Vuoi la versione PDF di questa lezione? Contattaci!
🗨️ Hai domande? Lascia un commento qui sotto.
🔁 Prossima lezione: Redirezioni e pipe avanzate
📈 Avanzamento simbolico: 🔷 Lezione 10/24 completata
🔗 Link : Introduzione allo Shell Scripting con Bash
🔗 Link: Documentazione ufficiale GNU Bash