GNU/Linux >> Linux Esercitazione >  >> Linux

Esempi di comandi Nohup:esegue un comando che continua a essere eseguito dopo la disconnessione

L'utilità nohup esegue una riga di comando in modo tale che il comando continui a essere eseguito dopo la disconnessione. In altre parole, nohup fa sì che un processo ignori un segnale SIGHUP. A seconda di come è configurata la shell locale, un processo avviato senza nohup e in esecuzione in background potrebbe essere interrotto quando ti disconnetti.

Sintassi per eseguire il comando nohup

La sintassi dei comandi di base per eseguire un comando nohup è la seguente:

# nohup command_with_options &

Qualsiasi output del tuo lavoro verrà reindirizzato a un file chiamato "nohup.out", a meno che tu non specifichi diversamente con

# nohup command > myout.file 2>&1

che invia tutto l'output al file myout.file.

Salvataggio dell'output del comando nohup

Se non reindirizzi l'output di un comando eseguito utilizzando nohup, sia lo standard output che lo standard error vengono inviati al file denominato nohup.out nella directory di lavoro. Se non disponi dell'autorizzazione di scrittura per la directory di lavoro, nohup invia l'output a ~/nohup.out .

Puoi anche inviare l'output a qualsiasi altro file specificato da te come mostrato sopra nella sintassi del comando.

Esempi

1. Esecuzione di nohup senza specificare un file di output

Facciamo un esempio e testiamo che effettivamente continui a funzionare dopo che ti sei disconnesso. Daremo il via a uno script chiamato script.sh. Il contenuto dello script è il seguente:

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

Eseguiamo lo script in backgroup con il comando nohup:

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

Come puoi vedere sopra, non abbiamo specificato un file di output. Pertanto, l'output standard e l'errore standard per impostazione predefinita vanno nel file nohup.out nella directory da cui è stato richiamato lo script. Anche il numero 179 Specificato l'ID processo (PID) del lavoro. Questo PID può essere verificato nell'output del comando "ps -ef" come mostrato di seguito.

Ora esci dalla shell, accedi di nuovo ed esegui il seguente comando:

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

Lo script funziona ancora. Usa “ps -ef | grep ps1” se il tuo sistema non supporta ps x. Puoi anche controllare il file di output nohup.out per ulteriori conferme.

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
NOTA :Se si esegue un altro comando utilizzando nohup, l'output viene aggiunto al file nohup.out esistente. Fai attenzione quando esegui più comandi dalla stessa directory, perché tutto l'output viene inviato allo stesso file nohup.out, che può creare confusione.

Eseguire nohup specificando un file di output

Ora lo script sopra può anche essere eseguito con il comando nohup e specificando un file di output personalizzato come mostrato di seguito:

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

Conclusione

Se stai eseguendo un processo e non pensi che sarà completato prima che ti disconnetti per la giornata, usa il comando nohup. Nohup continuerà l'elaborazione quando esci dal tuo account. Nohup significa non riattaccare .


Linux
  1. Comando Nohup con esempi

  2. 4 modi per mantenere un comando in esecuzione dopo esserti disconnesso dalla sessione SSH

  3. 20 Comandi OpenSSL Esempi che devi conoscere

  4. 4 modi per scoprire un core della CPU che esegue un particolare processo in Linux

  5. 12 Esempi di opzioni per il formato di output del comando ora UNIX / Linux

8 Comando Tee Linux con esempi

Comando Nohup Linux con esempi

Il comando Nohup in Linux ti consente di eseguire comandi anche dopo il logout

Esempi di comandi echo Linux

3 Spiegazione dell'output del comando di SELinux sestatus con esempi

Puoi superare questo? 15 Esempi pratici di comandi principali di Linux