Controllo dei job (bg, fg, jobs)
Impari a gestire i processi in background e in primo piano, mettendo in pausa, riprendendo ed elencando i job nella sessione della shell.
Controllo dei job (bg, fg, jobs) è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Che cos’è il controllo dei job?
Benvenuto nel controllo dei job! Questa potente funzionalità della shell Linux consente di gestire i programmi in esecuzione senza chiudere il terminale né aprirne altri.
Lo si può considerare come una forma di multitasking per la riga di comando. È possibile mettere in pausa un’attività, spostarla in background o riportarla in primo piano.
Primo piano e background
Quando esegue un comando, questo viene normalmente eseguito in primo piano. Ciò significa che prende il controllo del terminale e che non può digitare nuovi comandi finché non termina.
Un processo in background, invece, viene eseguito in modo indipendente. Lascia libero il terminale, così può continuare a lavorare su altre attività mentre il processo viene eseguito.
Mettere in pausa un processo (Ctrl+Z)
Per mettere in pausa un processo in primo piano attualmente in esecuzione, usi la scorciatoia da tastiera Ctrl+Z. In questo modo invia un segnale SIGTSTP, sospendendo il processo.
Il processo non viene terminato: diventa un job «stopped», in attesa che gli indichi cosa fare.
Visualizzare i job (jobs)
Dopo aver messo in pausa un processo (o averne inviato uno in background), può visualizzare l'elenco di tutti i job attivi nella sessione corrente della shell usando il comando jobs.
Ogni job riceve un numero univoco (come [1], [2] e così via) e il relativo stato (ad esempio, Stopped o Running).
sleep 50 &
sleep 60 &
jobsPortare in primo piano (fg)
Se ha un job sospeso o in background, può riportarlo in primo piano usando il comando fg, seguito dal numero del job (ad esempio, %1).
In questo modo il job torna a essere il processo attivo nel terminale.
sleep 100 &
jobs
# Now, let's bring it to foreground
fg %1Inviare in background (bg)
Per riprendere un job stopped e inviarlo in background, usi il comando bg con il relativo numero del job.
Il processo continuerà a essere eseguito senza bloccare il terminale e il prompt sarà nuovamente disponibile immediatamente.
sleep 200
# Press Ctrl+Z to stop it
# Then type:
bg %1
jobsEseguire in background ( & )
Non è sempre necessario avviare un processo in primo piano e poi metterlo in pausa. Può avviare un comando direttamente in background aggiungendo una e commerciale (&) alla fine del comando.
È particolarmente utile per le attività di lunga durata con cui non deve interagire.
echo "Starting long task..." &
sleep 300 &
jobsNumeri dei job e PID
Quando usa jobs, visualizza numeri di job come [1] e [2]. Questi numeri sono specifici della sessione della shell.
Ogni processo in esecuzione ha anche un Process ID (PID) univoco, ovvero un numero valido a livello di sistema. Può visualizzare i PID con jobs -l o ps.
sleep 100 &
jobs -lTerminare i job (kill)
Per terminare un job in background o sospeso, può usare il comando kill. Può specificare il numero del job (ad esempio, kill %1) oppure il relativo PID (ad esempio, kill 12345).
kill invia un segnale al processo. Per impostazione predefinita, il segnale è SIGTERM (terminazione regolare). Per una terminazione forzata, usi kill -9 %job_number o kill -9 PID.
sleep 500 &
jobs
# Assuming sleep is job 1:
kill %1
jobsQuiz sul controllo dei job
Ha avviato un comando di lunga durata (ad esempio, find / -name *.txt), ma ora ha bisogno di riottenere il terminale per digitare un altro comando. Qual è la sequenza corretta per mettere in pausa il comando find, inviarlo in background in modo che continui a essere eseguito e poi verificare che sia un job in background?
Riepilogo: controllo dei job
Ha imparato a gestire i job.
Ctrl+Zmette in pausa un processo in primo piano.jobselenca tutti i job attivi.fg %Nporta il jobNin primo piano.bg %Ninvia il job sospesoNin background.- Aggiungendo
&, esegue direttamente un comando in background. kill %Nokill PIDtermina un job.
In questo modo può gestire più attività in modo efficiente all'interno di un'unica sessione del terminale.
Impara DevOps Bootcamp con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 142
- Lezioni
- 568
Domande Frequenti
La lezione «Controllo dei job (bg, fg, jobs)» è gratuita?
Sì — il testo completo di «Controllo dei job (bg, fg, jobs)» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Controllo dei job (bg, fg, jobs)»?
Impari a gestire i processi in background e in primo piano, mettendo in pausa, riprendendo ed elencando i job nella sessione della shell. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Controllo dei job (bg, fg, jobs)»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Controllo dei job (bg, fg, jobs)
- Espansione della shell e globbing
- Alias e prompt personalizzati
- Funzioni della shell e snippet riutilizzabili