Come eseguire i comandi Linux in background

Come eseguire i comandi Linux in background

L'esecuzione dei comandi Linux in background consente all'utente di continuare a eseguire altre attività mentre il comando è ancora in esecuzione. Per eseguire un comando in background ci sono più modi; Uno dei metodi semplici è aggiungere un ampersand (&) alla fine della riga di comando.

Una volta impostato un processo per eseguire in background, possiamo accedervi utilizzando il lavori comando. Questo articolo presenta tutti i diversi modi di eseguire un comando in background.

L'elenco di diversi modi per eseguire un processo di fondo è i seguenti:

    • Aggiunta di AMPERSAND (&) cartello
    • Usando il comando BG
    • Usando il comando Nohup
    • Usando il comando rinnegato
    • Usando l'utilità TMUX

Di seguito sono riportati i dettagli di tutti i metodi per eseguire un processo di fondo:

1: Utilizzo del cartello AMPERSAND (&)

In Linux AmperSand (&) è un operatore di shell che invia un comando in background come processo separato. Combinando AmperSand (&) a un comando, verrà eseguito come processo di fondo, consentendo alla shell di continuare a elaborare altri comandi immediatamente.

Sintassi per un processo di fondo usando il segno AmperSand:

$ [comando] &


Il simbolo AmperSand viene sempre aggiunto alla fine del comando con un singolo spazio tra "&" e ultimo carattere di comando.

Ad esempio, creare un processo di sonno per 40 sec.

$ Sleep 40


Come possiamo vedere, il terminale sta eseguendo il comando del sonno e non ci consente di eseguire qualsiasi altra attività.


Ora premi "Ctrl + Z" per fermare questo processo. Successivamente, questa volta eseguiremo lo stesso comando di sonno, ma usando un operatore AmperSand lo imposterà in background.

$ Sleep 40 &



Ora questo processo è in background. Per elencare il processo di esecuzione in background utilizzare:

$ Jobs -l



Ora uccidi questo processo di fondo usando:

$ kill -9 [job -id]


Ad esempio, per uccidere l'attuale processo di sonno in esecuzione:

$ kill -9 6149


Ora il processo di sonno viene ucciso per confermare l'elenco del processo di esecuzione in background utilizzando.

$ Jobs -l



Ecco un altro esempio di utilizzo & ampersand Il segno è con il comando gedit.

Ad esempio, se apriamo direttamente l'editor di testo GEdit utilizzando il terminale, saremo tenuti a utilizzare la shell per altri lavori, altrimenti dobbiamo interrompere prima il processo corrente.

$ gedit


L'uso del comando sopra aprirà l'editor di testo che lo aprirà davanti al terminale.


Ma dopo aver usato "&" alla fine del comando GEDIT, la shell è libera da utilizzare per altri processi:

$ gedit e


2: usando il comando 'BG'

Il comando BG è il secondo modo di eseguire comandi in background. Questo comando consente all'utente di continuare a lavorare nel terminale mentre il processo viene eseguito in background, liberando il terminale per altre attività. Il comando BG viene utilizzato per un processo di background a lungo termine che funziona anche se l'utente si interrompe.

Come un segno AMPERS e non dobbiamo preoccuparci di aggiungerlo al comando ogni volta inviare il testo BG al terminale. Inizierà a eseguire il processo in background e libererà il terminale per un uso futuro.

Ad esempio, usiamo l'esempio precedente e inviamo il comando del sonno usando:

$ Sleep 40



Ora il processo è in esecuzione e il terminale non è disponibile per l'uso. Per utilizzare il comando BG e inviare questo processo in background dobbiamo prima fermare il processo di esecuzione corrente premendo "Ctrl+ Z" ed eseguire questo comando:

$ bg


Dopo aver inviato il comando BG, il processo di sonno ha iniziato a continuare in background. Possiamo vedere un ampers e "&" alla fine, indicando che il processo corrente è in background in esecuzione.


Per verificare il comando di lavoro di processo di sfondo:

$ Jobs -l



Per controllare il comando in esecuzione in background, utilizzare:

$ fg



Per uccidere il processo corrente, usa il suo ID lavoro con Kill Command. Per controllare i lavori ID, eseguire:

$ Jobs -l



Dopo aver saputo il processo di uccisione ID di lavoro usando:

$ kill -9 [job -id]


Ad esempio, per uccidere l'attuale processo di sonno in esecuzione:

$ kill -9 6584


Per confermare se il processo viene ucciso o meno eseguire il comando di lavoro:

$ Jobs -l


Possiamo vedere che il processo di sonno non funziona più in background:

3: usando il comando Nohup

Il comando Nohup è terzo nel nostro elenco di processi di fondo in esecuzione in Linux. Il comando sta per "No Hang Up" e viene utilizzato per evitare che il processo venga terminato fino alla fine della sessione del terminale. Quando viene eseguito un processo utilizzando Nohup, continua a funzionare anche se l'utente si disconnette e l'output del processo viene reindirizzato a un file denominato “Nohup.fuori".

Il comando Nohup per ping google continuamente in background è e l'output viene reindirizzato a un file di testo Google.TXT:

$ nohup ping google.com> Googleping.TXT &


Dopo aver scritto questo comando, possiamo vedere che il terminale è gratuito e un processo di fondo per il ping in continuazione di Google è in esecuzione in background.


Per accedere al file di registro, possiamo utilizzare il seguente comando:

$ gatto Googleping.TXT



È possibile accedere anche al file di registro utilizzando la GUI dalla schermata principale.

4: usando il comando rinnegato

Il comando rinnegato rimuove un processo dalla shell e lo esegue in background. Quando un processo è rinnegato, non è più associato al terminale e continua a funzionare anche dopo che l'utente si interrompe o chiude il terminale.

In precedenza abbiamo usato il comando AmperSand "&" che invia il processo in background dopo la sua esecuzione, ma mentre chiudiamo la shell, il processo viene terminato. Per sbarazzarsi di questo comando rinnegato è lì.

Il comando rinnegato non può funzionare in modo indipendente ma un minimo di un processo deve essere in esecuzione in background.

Esegui il comando seguente con a E AmperSand Sign che invierà il tuo comando allo sfondo.

$ ping Google.com> Googleping.TXT &


Dopo aver creato il file, possiamo elencarlo utilizzando il comando Jobs.


Ora il nostro processo viene eseguito in background per staccarlo dall'uso del terminale:

$ rinnegando



Esegui nuovamente il comando Jobs per confermare che il processo è staccato dal terminale:

$ Jobs -l


Poiché il nostro processo è attualmente in esecuzione ma non è più mostrato all'interno del terminale:


Per confermare il nostro processo, possiamo utilizzare il comando CAT per accedere a quel file di ping:

$ gatto Googleping.TXT



Abbiamo staccato con successo questo processo dal terminale ma è ancora in esecuzione in background.

5: usando l'utilità TMUX

TMUX è una sorta di utilità multiplexer terminale. Usando TMUX possiamo creare più sessioni di terminale all'interno di una singola shell. Fornisce la possibilità di eseguire processi in background.

Per eseguire un processo di fondo in TMUX, è possibile creare una nuova sessione e quindi staccarci usando la combinazione di tasti CTRL-B seguita da D.

Per installare l'utilità TMUX su Ubuntu e Linux Mint Utilizzo:

$ sudo apt Installa tmux



Per installare su Fedora Run:

$ sudo dnf Installa tmux


Per installare su Arch Linux Run:

$ sudo pacman -s tmux


Ora esegui il comando TMUX per aprire un nuovo terminale:

$ tmux


Per creare una nuova sessione di TMUX:

$ tmux new -s [session_id]


Per elencare tutta la sessione TMUX, utilizzare:

$ tmux ls


Per uccidere un comando di sessione TMUX come:

$ tmux kill -session -t [session_id]


Ad esempio, per uccidere "0" Sessione TMUX Utilizzo:

$ tmux kill -session -t 0


Qui abbiamo elencato l'attuale sessione attiva in esecuzione e ucciderla usando il comando sopra:


    • Per staccarsi dalla sessione TMUX "Ctrl+B+D".
    • Per ottenere un elenco di tutti i comandi Premere “Ctrl+B+?".
    • Per spostare tra TMUX Windows Premere "Ctrl+B+O".

Per dividere il terminale TMUX in verticale, premere "Ctrl+B" e digitare %.


Per tornare sul terminale principale da tmux utilizzo:

$ uscita

Conclusione

L'esecuzione di applicazioni in background in Linux è una funzione potente che consente agli utenti di mantenere le loro attività di lunga durata in esecuzione anche dopo essere usciti dal terminale o chiusura della finestra. Di solito un ampersand & segno o bg Il comando viene utilizzato per inviare un processo in background. Tuttavia, possiamo anche usare nohup O rinnegare comanda per staccare un processo dal terminale. Finalmente, possiamo usare il Utilità TMUX Per creare più terminali ed eseguire processi di fondo senza disturbare il terminale.