🔟 Gestire processi e background con Bash su Linux

Grafico informativo che mostra come monitorare e terminare processi in Bash con comandi come ps, top, htop e kill
I comandi essenziali per controllare i processi attivi in Linux direttamente da terminale Bash.

⏱️ 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 utenti
  • u: visualizza il proprietario dei processi
  • x: 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:

  1. Premi CTRL+Z per sospendere temporaneamente.
  2. Digita bg per 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

  1. Trova il PID con:
ps aux | grep nome_processo
  1. 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 120 in background.
  • Utilizza ps, top o htop per 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

Lascia un commento