Che lavoro fa in Linux
Un lavoro è un processo gestito dalla shell. A ogni lavoro viene assegnato un ID lavoro sequenziale. Poiché un lavoro è un processo, ogni lavoro ha un PID associato. Esistono tre tipi di stati dei lavori:
1. In primo piano :Quando si immette un comando in una finestra di terminale, il comando occupa quella finestra di terminale fino al completamento. Questo è un lavoro in primo piano.
2. Sfondo :Quando si immette un simbolo e commerciale (&) alla fine di una riga di comando, il comando viene eseguito senza occupare la finestra del terminale. Il prompt della shell viene visualizzato immediatamente dopo aver premuto Invio. Questo è un esempio di lavoro in background.
3. Interrotto :se premi Control + Z per un lavoro in primo piano o inserisci il comando stop per un lavoro in background, il lavoro si interrompe. Questo lavoro è chiamato lavoro interrotto.
Comandi di controllo del lavoro
I comandi di controllo dei lavori consentono di posizionare i lavori in primo piano o in background e di avviare o interrompere i lavori. La tabella descrive i comandi di controllo dei lavori.
Opzione | Descrizione |
---|---|
lavori | Elenca tutti i lavori |
bg %n | Posiziona il lavoro corrente o specificato in background, dove n è l'ID lavoro |
fg %n | Porta in primo piano il lavoro corrente o specificato, dove n è l'ID lavoro |
Control-Z | Interrompe il lavoro in primo piano e lo pone in background come lavoro interrotto |
Esecuzione di un lavoro in background
Per eseguire un lavoro in background, devi inserire il comando che vuoi eseguire, seguito da una e commerciale (&) simbolo alla fine della riga di comando. Ad esempio, esegui il comando sleep in background.
$ sleep 100 & [1] 1302 $
La shell restituisce l'ID lavoro, tra parentesi, che assegna al comando e al PID associato. Con l'ID lavoro, puoi utilizzare i comandi di controllo del lavoro per gestire il lavoro mentre il kernel utilizza i PID per gestire i lavori.
Quando un lavoro in background è completo e premi Invio, la shell visualizza un messaggio che indica che il lavoro è terminato.
[1] + Done sleep 100 & $
Gestione dei lavori in background
Puoi utilizzare i lavori comando per elencare i lavori attualmente in esecuzione o sospesi in background.
$ jobs [1]+ Running sleep 100 &
Puoi usare il comando fg per portare un lavoro in background in primo piano.
$ fg % 1 sleep 100Nota :il lavoro in primo piano occupa la shell finché il lavoro non viene completato, sospeso o interrotto e posizionato in background.
Puoi usare "Control+Z chiavi e bg comando per riportare un lavoro in background. I tasti Control+Z sospendono il lavoro e lo mettono in background come lavoro interrotto. Il comando bg esegue il lavoro in background. Ad esempio:
1. Usando CTRL+Z
$ sleep 100 ^Z [1]+ Stopped sleep 100
$ jobs [1]+ Stopped sleep 100
$ bg % 1 [1]+ sleep 100 &
$ jobs [1]+ Running sleep 100 &Nota :quando metti un lavoro interrotto in primo piano o in background, il lavoro si riavvia.