Risposte:
Nohup fa in modo che un programma ignori il segnale HUP, consentendogli di funzionare dopo la chiusura del terminale corrente / disconnessione dell'utente. Nohup non invia il programma in background.
e alla fine del comando è correlato al controllo dei lavori di shell, consentendo all'utente di continuare a lavorare nella sessione di shell corrente.
Di solito nohup e & sono combinati per avviare il programma che viene eseguito dopo il logout dell'utente e consente di continuare a lavorare nella sessione di shell corrente.
In genere uso &quando voglio eseguire in background un comando che non richiederà molto tempo per essere eseguito, o uno in cui non mi dispiacerà davvero se il programma viene terminato se mi disconnetto inaspettatamente da una sessione.
xcalc &
rdesktop 1.2.3.4 &
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &
Quando lavoro su una VPN o una connessione remota instabile, tendo a utilizzarlo nohupper eseguire qualsiasi cosa che richieda del tempo per essere eseguita. Quando si eseguono grandi importazioni di dati su un host remoto, ad esempio, è possibile che si desideri utilizzare nohupper assicurarsi che la disconnessione non ti ricomincia da capo quando ti riconnetti.
nohup ./do_data_load.py mydatafile.txt &
Viene anche usato quando uno sviluppatore non demone correttamente un servizio, quindi devi nohupassicurarti che non venga ucciso quando esci.
nohup sillyd &
Se ti capita di dimenticare di usare nohupquando esegui qualcosa come gli ultimi due esempi, puoi usare l'integrato bash o zsh disowncon lo stesso effetto.
$ sillyd &
[1] 12345 # Whoops!
$ disown %1
È piuttosto raro usarlo nohupsenza &, dal momento che non puoi davvero ricollegarti alla sessione nohup'd se sei disconnesso. Questo praticamente elimina la sua utilità per i comandi interattivi. Nel caso in cui si disponga di un comando interattivo che si desidera mantenere su sessioni o evitare disconnessioni complicate, è possibile utilizzare screen. La potenza di fuoco di una screensessione completamente armata e operativa va oltre lo scopo di questo post, quindi dovresti verificarlo più in dettaglio .
byobuche aggiunge alcune belle funzionalità allo schermo. È disponibile nella maggior parte dei repository apt e nei repository EPEL per Red Hat.
nohup: disconnette l'utente corrente, il processo non si fermerà
&: con questo simbolo, non ci sarà output nel terminale corrente, il processo in esecuzione in background