Vai al contenuto
eLearner.app
Modulo 5 · Lezione 2 di 211/11 nel corso~15 min
Lezioni del modulo (2/2)

Job control e log (bg, fg, tail)

Quando utilizzi il terminale, potresti voler eseguire un comando a lungo termine senza bloccare la shell. Linux supporta il controllo dei lavori (Job Control), che ti permette di inviare processi in background ed alternarli con il primo piano. Inoltre, imparerai a monitorare i log per controllare cosa succede sul sistema.


Eseguire Comandi in Background: & e jobs

Per avviare un comando direttamente in background (rilasciando subito il controllo del terminale), si aggiunge il carattere & (e commerciale) alla fine del comando:

Bash
sleep 1000 &

Questo comando restituisce un numero di job (es. [1]) e un PID.

Elencare i Job: jobs

Il comando jobs elenca i processi attivi associati alla sessione corrente della shell che sono in esecuzione in background o sospesi:

Bash
jobs

Spostare i Processi: fg, bg e Ctrl+Z

Se un comando è in esecuzione in primo piano (foreground) e sta bloccando il terminale, puoi:

  1. Premere Ctrl + Z per sospendere (mettere in pausa) il processo corrente.
  2. Usare il comando bg (background) per far ripartire il processo sospeso in background:
    Bash
    bg %1   # Riavvia il job 1 in background
  3. Usare il comando fg (foreground) per riportare un processo in background in primo piano:
    Bash
    fg %1   # Riporta il job 1 in primo piano

Monitorare i Log: tail e journalctl

I log di sistema e delle applicazioni registrano eventi importanti. Spesso è necessario osservare questi file in tempo reale man mano che vengono scritti.

Visualizzare la fine di un file: tail

Il comando tail mostra le ultime righe di un file (di default 10 righe):

Bash
tail /var/log/syslog
tail -n 20 /var/log/syslog    # Mostra le ultime 20 righe

Per monitorare un file in tempo reale (ad esempio per vedere i log generati mentre testi un'applicazione), usa l'opzione -f (follow):

Bash
tail -f logs/server.log

Prova tu

Esercizio 1: Elenca i job attivi

Esercizio#linux.m5.l2.e1
Tentativi: 0Caricamento…

Visualizza la lista dei job correnti (processi in background o sospesi) nella sessione del terminale usando il comando 'jobs'.

Caricamento editor…
Mostra suggerimento

Usa semplicemente il comando 'jobs'.

Soluzione disponibile dopo 3 tentativi

Esercizio 2: Porta un job in primo piano

Esercizio#linux.m5.l2.e2
Tentativi: 0Caricamento…

Porta in primo piano (foreground) il job in background correntemente attivo usando il comando 'fg'.

Caricamento editor…
Mostra suggerimento

Usa il comando 'fg' per riportare il job in primo piano.

Soluzione disponibile dopo 3 tentativi

Esercizio 3: Controlla le ultime righe di un log

Esercizio#linux.m5.l2.e3
Tentativi: 0Caricamento…

Visualizza le ultime righe del file di log situato in 'logs/server.log' usando il comando 'tail'.

Caricamento editor…
Mostra suggerimento

Usa 'tail' seguito dal percorso del file: 'logs/server.log'.

Soluzione disponibile dopo 3 tentativi