dic
8
2007

nohup: Un comando è per sempre…

closeQuesto articolo è stato pubblicato 4 anni 2 mesi 6 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi. Questo sito non è responsabile per eventuali errori causati da questo problema.

I comandi linux sono innumerevoli e spesso la maggior parte di questi è sconosciuta ai più. È il caso del comando citato nel titolo e di cui voglio parlare in questo post: nohup.

Il MAN della mia gentoo recita approposito di tale comando: “run a command immune to hangups, with output to a non-tty“.

terminal.jpg

Cosa significa e qual’è l’utilità di questa applicazione?

La suddetta definizione significa che tale comando dà l’opportunità di avviare una applicazione in terminale che continuerà la propria esecuzione anche se il terminale sarà chiuso. Affinché questo sia possibile ovviamente l’output non sarà visualizzato a terminale ma salvato su uno specifico file (di default nohup.out).

L’applicabilità di questo piccolo comando sono molteplici, ma le principali sono senza ombra di dubbio 2:

  • Esecuzione di operazioni alla chiusura dell’ambiente grafico in un sistema multiuser;
  • Esecuzione di operazioni in un ambiente remoto.

Nel primo caso infatti, normalmente qualsiasi operazione avviata all’interno dell’ambiente grafico sarebbe bloccata: invece se tale applicazione fosse eseguita da nohup, preserveremmo la sua esecuzione. E questa cosa potrebbe essere assai utile nel caso di aggiornamenti o compilazioni molto lunghe o per eseguire script o applicazioni personalizzate prima che l’ambiente grafico sia chiuso e sia reso accessibile ad altri utenti.

L’altro caso è altrettanto interessante: qualora si eseguano operazioni piuttosto lunghe su un ambiente remoto via ssh piuttosto che telnet, non è possibile interrompere la comunicazione o chiudere il client senza interrompere anche le operazioni in esecuzione: lanciando tali comandi con nohup, questi continueranno la loro esecuzione anche se il client interromperà la comunicazione.

2 Comments + Add Comment

  • Hai mai provato screen? Fà le stesse cose e ha funzionalità molto interessanti.
    Mirko

  • no non lo conoscevo! ma da quello che ho visto è un comando molto interessante!

    Anche troppo… nel senso che per quello per cui sono venuto a conoscenza di nohup (far girare uno mio script alla chiusura della sessione kde anche qualora questa si chiuda prima che lo script abbia terminato l’esecuzione) mi sembra che effettivamente screen sia anche troppo.

    Diverso è il discorso dell’uso con ssh, dove poter effettivamente tenere una sessione in un terminale virtuale aperto anche senza essere connessi e poi riprenderla in seguito potrebbe essere certamente più interessante che far semplicemente eseguire un comando.

    Grazie in ogni caso per il suggerimento

Leave a comment

*