GNU/Linux >> Linux Esercitazione >  >> Linux

Esecuzione di comandi Linux in background e in primo piano

Se hai un'attività di lunga durata, non è sempre saggio aspettare che finisca. Voglio dire, perché tenere occupato il terminale per un comando particolare? In Linux, puoi inviare un comando o un processo in background in modo che il comando sia in esecuzione ma il terminale sia libero per eseguire altri comandi.

In questo tutorial, ti mostrerò un paio di modi per inviare un processo in background. Ti mostrerò anche come riportare i processi in background in primo piano.

Avvia un processo Linux in background direttamente

Se sai che il comando o il processo richiederà molto tempo, sarebbe meglio avviare il comando in background stesso.

Per eseguire un comando Linux in background, tutto ciò che devi fare è aggiungere la e commerciale (&) alla fine del comando, in questo modo:

your_command &

Prendiamo un semplice comando di sospensione bash e lo mandiamo in background.

sleep 60 &

Al termine del comando in background, dovresti vedere le informazioni a riguardo sul terminale.

[1]+  Done                    sleep 60

Invia un processo Linux in esecuzione in background

Se hai già eseguito un programma e poi ti sei reso conto che avresti dovuto eseguirlo in background, non preoccuparti. Puoi anche inviare un processo in esecuzione in background.

Quello che devi fare qui è usare Ctrl+Z per sospendere il processo in esecuzione e quindi utilizzare "bg ' (abbreviazione di background) per inviare il processo in background. Il processo sospeso verrà ora eseguito in background.

running_command
^z
bg

Facciamo lo stesso esempio di prima.

[email protected]:~$ sleep 60
^Z
[1]+  Stopped                 sleep 60
[email protected]:~$ bg
[1]+ sleep 60 &

Visualizza tutti i processi in esecuzione in background

Ora che sai come inviare i processi in background, potresti essere interessato a sapere quali comandi sono in esecuzione in background.

A tale scopo, puoi inserire questo comando nel terminale:

jobs

Mettiamo prima alcuni comandi in background.

firefox &
gedit &
vim &

Ora il comando jobs ti mostrerà tutti i lavori/processi/comandi in esecuzione in background in questo modo:

jobs
[1]   Running                 firefox &
[2]-  Running                 gedit &
[3]+  Stopped                 vim

Noti i numeri [1], [2] e [3] ecc? Questi sono gli ID lavoro. Noteresti anche il segno – e + su due dei comandi. Il segno + indica l'ultimo lavoro che hai eseguito o messo in primo piano. Il segno – indica il penultimo lavoro che hai eseguito o messo in primo piano.

Porta un processo in primo piano in Linux

Bene! Quindi hai imparato a eseguire comandi in background in Linux. Ma che ne dici di riportare in primo piano un processo in esecuzione in background?

Per inviare il comando in background, hai usato 'bg'. Per ripristinare il processo in background, usa il comando 'fg'.

fg

Ora, se usi semplicemente fg, porterà in primo piano l'ultimo processo nella coda dei lavori in background. Nel nostro esempio precedente, l'esecuzione di 'fg' riporterà l'editor Vim al terminale.

Se vuoi portare un certo processo in primo piano, devi specificare il suo ID lavoro. L'ID lavoro è il numero che vedi all'inizio di ogni riga nell'output del comando "lavori".

fg n

Dove n è l'ID del lavoro visualizzato nell'output dei lavori del comando.

Ecco fatto

Questo è stato veloce ma sufficiente per imparare alcune cose sull'esecuzione dei comandi in background in Linux. Consiglierei anche di imparare il comando nohup. Questo comando ti consente di eseguire comandi in background anche dopo esserti disconnesso dalla sessione.

Se hai domande o suggerimenti, lascia un commento qui sotto.


Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. Comandi Linux - Panoramica ed esempi

  3. Come salvare i comandi Linux e usarli su richiesta

  4. Comando eco di Linux

  5. Comprendere i comandi di controllo del lavoro in Linux:bg, fg e CTRL+Z

Come eseguire i comandi Linux in background

Comandi di base di Linux

Comandi Linux - Guida completa

Come eseguire automaticamente script e comandi di avvio di Linux

Come lavorare con il processo in primo piano e in background in Linux

Metti un timer sui tuoi comandi in esecuzione con il comando di timeout in Linux