nohup
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 wikitesto]
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 wikitesto]
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 wikitesto]
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 wikitesto]
Collegamenti esterni[modifica | modifica wikitesto]
- (EN) nohup: Run a command immune to hangups, in GNU Coreutils manual. URL consultato l'08-06-2008.