GNU/Linux >> Linux Esercitazione >  >> Linux

Bg, Fg e, Ctrl-Z – 5 esempi per gestire i lavori in background Unix

Quando esegui uno script o un comando della shell Unix che richiede molto tempo, puoi eseguirlo come lavoro in background.

In questo articolo, esaminiamo come eseguire un processo in background, portare un processo in primo piano, visualizzare tutti i processi in background e terminare un processo in background.

1. Esecuzione di un lavoro in background

L'aggiunta di una e commerciale ( &) al comando esegue il lavoro in background.

Ad esempio, quando esegui un comando di ricerca che potrebbe richiedere molto tempo per l'esecuzione, puoi metterlo in background come mostrato di seguito. L'esempio seguente trova tutti i file nel file system radice che sono stati modificati nelle ultime 24 ore.

# find / -ctime -1 > /tmp/changed-file-list.txt &

2. Inviare il lavoro in primo piano corrente in background usando CTRL-Z e il comando bg

Puoi inviare un lavoro in primo piano già in esecuzione in background come spiegato di seguito:

  • Premi "CTRL+Z" che sospenderà il lavoro in primo piano corrente.
  • Esegui bg per fare in modo che il comando venga eseguito in background.

Ad esempio, se hai dimenticato di eseguire un lavoro in background, non è necessario terminare il lavoro corrente e iniziare un nuovo lavoro in background. Sospendi invece il lavoro corrente e mettilo in background come mostrato di seguito.

# find / -ctime -1 > /tmp/changed-file-list.txt

# [CTRL-Z]
[2]+  Stopped                 find / -ctime -1 > /tmp/changed-file-list.txt

# bg

3. Visualizza tutti i lavori in background utilizzando il comando dei lavori

Puoi elencare i lavori in background con il comando lavori . L'output di esempio del comando dei lavori è

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

4. Portare un lavoro dallo sfondo al primo piano usando il comando fg

Puoi portare un lavoro in background in primo piano usando il comando fg . Se eseguito senza argomenti, porterà in primo piano il lavoro in background più recente.

# fg

Se hai più lavori in background e desideri portare un determinato lavoro in primo piano, esegui il comando jobs che mostrerà l'ID e il comando del lavoro.

Nell'esempio seguente, fg %1 porterà il job#1 (ovvero download-file.sh) in primo piano.

# jobs
[1]   Running                 bash download-file.sh &
[2]-  Running                 evolution &
[3]+  Done                    nautilus .

# fg %1

5. Termina un lavoro in background specifico usando kill %

Se vuoi eliminare un uso specifico di un lavoro in background, uccidi %job-number. Ad esempio, per terminare il lavoro 2 usa

# kill %2

Per terminare un lavoro in primo piano, usa uno dei metodi specificati nel nostro precedente articolo 4 modi per uccidere un processo:kill, killall, pkill, xkill.


Linux
  1. UNIX / Linux:10 esempi di comandi Netstat

  2. 5 Esempi di comandi traceroute UNIX/Linux

  3. 10 Esempi di comandi Xargs in Linux / UNIX

  4. Come ottenere l'ID processo del processo in background?

  5. Riaccedi alla modalità interattiva dopo Ctrl-z

Da DOS a Unix:comandi ed esempi

Lavori Cron programmati

Come utilizzare il comando Jobs in Linux

15 Esempi di comandi Linux sfdisk per gestire le partizioni del disco

Linux Crontab:15 fantastici esempi di Cron Job

Comando Unix LS:15 esempi pratici