nohup

Da Wikipedia, l'enciclopedia libera.

nohup è un comando dei sistemi operativi Unix e Unix-like, e più in generale dei sistemi POSIX[1], che esegue un altro comando facendogli ignorare il segnale SIGHUP, in modo da permettergli di proseguire l'esecuzione anche in caso di una disconnessione dal terminale, o della chiusura dell'emulatore di terminale.

Uso[modifica | modifica sorgente]

La sintassi generale di nohup è la seguente:

nohup comando [arg1 [arg2 …] ]

Il parametro comando indica il comando da eseguire, ed i parametri facoltativi arg i suoi parametri.

Se lo standard output di nohup è diretto ad un terminale, il comando viene avviato effettuando la redirezione dello standard output verso il file nohup.out nella directory corrente; se ciò non fosse possibile (ad esempio per problemi di permessi), esso viene rediretto al file nohup.out nella directory indicata dalla variabile d'ambiente HOME, che normalmente è la home directory dell'utente che avvia nohup. Analogamente, se lo standard error è diretto ad un terminale, esso viene rediretto alla stessa destinazione dello standard output.

La versione GNU di nohup, in aggiunta a quanto sopra, effettua un controllo ulteriore: se lo standard input proviene da un terminale, esso viene rediretto dal dispositivo a caratteri /dev/null.

È da notare che nohup non attiva di per sé l'esecuzione in background del comando: essa si può ottenere sfruttando le capacità di job control della shell testuale, ad esempio terminando la linea con una "e" commerciale ("&").

Esempi[modifica | modifica sorgente]

Avvia una copia (tramite il comando cp) della directory /home/utente/dati nella directory /mnt/backup, effettuando per sicurezza la redirezione dello standard input da /dev/null. La copia viene eseguita in background (notare la "&" al termine della linea):

nohup cp -R /home/utente/dati  /mnt/backup </dev/null &

Alternative[modifica | modifica sorgente]

Il programma GNU Screen offre la possibilità di disconnettere il terminale senza che ciò comporti la chiusura della sessione di lavoro ed i programmi in essa avviati, in maniera funzionalmente equivalente a nohup, ma con la possibilità di riconnettersi in un momento successivo, anche da un terminale diverso.

Note[modifica | modifica sorgente]

  1. ^ (EN) nohup in The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition. URL consultato l'08-06-2008.

Collegamenti esterni[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica