Skip to main content
  1. Comandi/

jobs / fg / bg - gestione job shell

·3 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Permettono di gestire piu' processi nella stessa sessione shell senza aprire nuovi terminali. Un job puo' girare in foreground (occupa il terminale), in background (gira liberamente), o essere sospeso (fermo, in attesa di essere ripreso).

Sintassi
#

jobs / fg [%n] / bg [%n] / comando &

Comandi essenziali
#

ComandoFlagSignificato flagCosa fa
jobsLista i job sospesi o in background con numero
jobs -l-llongMostra anche il PID di ogni job
fgRiporta l'ultimo job in foreground
fg %1%1job number 1Riporta il job numero 1 in foreground
bg %1%1job number 1Riprende il job numero 1 in background
comando &&backgroundLancia il comando direttamente in background
CTRL+ZSospende il processo in foreground (invia SIGSTOP)
CTRL+CTermina il processo in foreground (invia SIGINT)

Il ciclo di vita di un job
#

# 1. Lanci un processo — occupa il terminale (foreground)
ping google.com

# 2. CTRL+Z — sospendi il processo
# [1]+  Stopped    ping google.com

# 3. Vedi lo stato
jobs
# [1]+  Stopped    ping google.com

# 4a. Riprendi in foreground — terminale occupato
fg %1

# 4b. Riprendi in background — terminale libero
bg %1
# [1]+ ping google.com &

# 5. Lancia direttamente in background senza passare da foreground
ping google.com &
# [2] 5023

nice e renice — priorita' CPU
#

Il valore nice controlla la priorita' di un processo nella coda CPU. Va da -20 (massima priorita') a +19 (minima priorita'). Default: 0. Solo root puo' aumentare la priorita' (valori negativi).

ComandoFlagSignificato flagCosa fa
nice -n 10 cmd-nniceness valueLancia cmd con priorita' bassa (+10)
sudo nice -n -10 cmd-nniceness valueLancia cmd con priorita' alta (-10), richiede sudo
renice -n 19 PID-nniceness valueAbbassa la priorita' di un processo gia' in esecuzione
sudo renice -n -5 PID-nniceness valueAumenta la priorita' (richiede sudo)
# Backup che non rallenta il sistema durante l'orario lavorativo
nice -n 19 tar -czf backup.tar.gz /var/log/ &

# Processo critico che deve avere precedenza sulla CPU
sudo nice -n -10 processo-critico

Combinazioni utili
#

# Script di monitoring in background — libero di usare il terminale
python3 monitor.py &

# Vedi PID e stato di tutti i job
jobs -l

# Riporta il monitor in foreground quando serve leggere l'output
fg %1

# Termina un job per numero senza cercare il PID
kill %1

Scenario Reale
#

Durante un'analisi su una VM Ubuntu, un analista lancia uno script di detection in background con python3 failed_logins.py & e continua a navigare i log con journalctl -f nel terminale libero. Quando vuole vedere i risultati dello script, usa fg %1. Questo flusso evita di aprire una seconda sessione SSH solo per monitorare l'output.

Dove l'ho usato
#

Note personali
#

Note

kill %1 usa il numero del job, non il PID. E' piu' comodo di kill PID quando sei gia' dentro jobs e vedi i numeri.

Collegato a
#

Related