GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Linux Nohup

Il nohup comando esegue un altro programma specificato come argomento e ignora tutti i SIGHUP (riagganciare) segnali. SIGHUP è un segnale che viene inviato a un processo quando il suo terminale di controllo è chiuso.

Di solito, quando si esegue un programma su SSH, se la connessione si interrompe o ci si disconnette, la sessione viene terminata e tutti i processi eseguiti dal terminale si arrestano. Qui è dove il nohup il comando torna utile. Ignora tutti i segnali di interruzione e il processo continuerà a essere eseguito.

Come usare il comando nohup #

La sintassi per nohup il comando è il seguente:

nohup COMMAND [ARGS]

Il comando non accetta altre opzioni tranne lo standard --help e --version .

Diamo un'occhiata al seguente esempio:

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup esegue mycommand comando in primo piano e reindirizza l'output del comando a nohup.out file. Questo file viene creato nella directory di lavoro corrente. Se l'utente che esegue il comando non dispone dei permessi di scrittura nella directory di lavoro, il file viene creato nella directory home dell'utente.

Se esci o chiudi il terminale, il processo non viene terminato.

Esecuzione del comando in background #

Usando nohup in primo piano non è molto utile perché non sarai in grado di interagire con la shell fino al completamento del comando.

Per eseguire il comando in background, aggiungi il & simbolo alla fine del comando:

nohup mycommand &

L'output include l'ID del lavoro della shell (racchiuso tra parentesi quadre) e l'ID del processo:

[1] 25177

Puoi usare l'ID lavoro per portare il comando in primo piano usando fg comando.

Se per qualche motivo vuoi terminare il processo, usa kill comando seguito dall'ID del processo:

kill -9 25132

Reindirizzamento dell'output a un file #

Per impostazione predefinita, nohup reindirizza l'output del comando a nohup.out file. Se vuoi reindirizzare l'output a un file diverso, usa il reindirizzamento della shell standard.

Ad esempio, per reindirizzare lo standard output e lo standard error a mycommand.out useresti:

nohup mycommand > mycommand.out 2>&1 &

Per reindirizzare lo standard output e l'errore standard a file diversi:

nohup mycommand > mycommand.out 2> mycommand.err &

Alternative #

Esistono diversi programmi alternativi che puoi utilizzare per evitare che un comando venga terminato quando chiudi il terminale o ti disconnetti.

Schermata #

Screenor GNU Screen è un programma multiplexer di terminali che consente di avviare una sessione di schermo e aprire un numero qualsiasi di finestre (terminali virtuali) all'interno di quella sessione. I processi in esecuzione in Screen continueranno a essere eseguiti quando la loro finestra non è visibile anche se vieni disconnesso.

Tmux #

Tmux è una moderna alternativa allo schermo GNU. Con Tmux, puoi anche creare una sessione e aprire più finestre all'interno di quella sessione. Le sessioni di Tmux sono persistenti, il che significa che i programmi in esecuzione in Tmux continueranno a essere eseguiti anche se chiudi il terminale.

Rinnega #

disown è un built-in della shell che rimuove un lavoro della shell dal controllo del lavoro della shell. A differenza di nohup , puoi usare disown anche sui processi in esecuzione.

Conclusione #

nohup ti consente di impedire che i comandi vengano terminati quando ti disconnetti o esci dal terminale.

Se hai domande o feedback, sentiti libero di lasciare un commento.


Linux
  1. Comando Linux mv

  2. Linux du comando

  3. comando IP Linux

  4. comando cd di Linux

  5. Opzioni di comando nohup in Linux

Comando Data in Linux

Comando W in Linux

Al comando in Linux

Comando Nohup Linux con esempi

Comando Df in Linux

Comando Nohup in Linux