Vi abbiamo spiegato cos'è un processo in background di Linux e come avviarlo correttamente. In questo articolo vi spiegheremo come funziona in questa modalità.
Come funziona un processo in background
L'esecuzione di uno script in Linux è un compito, ma è necessario assicurarsi che funzioni correttamente subito dopo la chiusura del terminale. La chiusura del terminale avviene nel modo seguente: è necessario fare clic sulla croce che si trova nell'angolo superiore dello schermo; questo porta alla terminazione di tutti i processi in background. Esistono diversi metodi per salvarli nel caso in cui si perda la connessione con la shell interattiva
Primo: rimuovere la coda di lavoro dall'attività utilizzando disown:
disown

Come nei casi precedenti, se ci sono più processi contemporanei in esecuzione, è necessario specificare il numero di quello relativo a cui verrà eseguita l'azione:
disown %1

Assicurarsi che l'attività non sia presente nell'elenco delle attività. Come fare. Utilizzare l'utilità jobs -l. Per visualizzare l'intero elenco dei processi in esecuzione, si utilizza il comando:
ps aux

Metodo successivo: si salvano i processi in esecuzione con il comando nohup. Questo comando dopo l'esecuzione eseguirà a sua volta un altro comando, tutti i segnali SIGHUP saranno ignorati.
È possibile eseguire il comando in background in questo modo:
nohup command &

Come si può vedere nell'immagine precedente, l'output del comando verrà inviato a nohup.out. La cosa più importante è che dopo il logout e la chiusura del terminale, il processo continuerà a funzionare. Esistono alcune utility che consentono di eseguire due o più sessioni contemporaneamente. In particolare, Screen e Tmux permettono di farlo.
ScreenoGNU Screenè un multiplexer di terminale che consente di avviare una sessione di lavoro e di aprire un numero qualsiasi di finestre (terminali virtuali) al suo interno. I processi in esecuzione in questo programma funzionano anche se le loro finestre sono invisibili o il programma ha smesso di funzionare.Tmuxè un'alternativa più moderna aGNU Screen. Tuttavia, le caratteristiche diTmuxnon sono fondamentalmente diverse: è possibile aprire molte finestre all'interno di una singola sessione nello stesso modo. Le attività in esecuzione inTmuxcontinuano ad essere eseguite se il terminale viene chiuso.
Abbiamo risolto questo problema, come potete vedere, tutto è elementare e semplice.