Quando esegui un lavoro Unix in background (usando &, comando bg) e il logout dalla sessione, il tuo processo verrà ucciso. È possibile evitare questo utilizzando diversi metodi: eseguire il lavoro con nohup o renderlo come lavoro batch utilizzando il comando at, batch o cron.
Questo suggerimento rapido è per i principianti. Se hai utilizzato nohup per un po’, lasciaci un commento e dirci in quali situazioni si utilizza nohup.,
In questo suggerimento rapido, esaminiamo come rendere il processo in esecuzione anche dopo il logout, utilizzando nohup.
Nohup sta per no hang up, che può essere eseguito come mostrato di seguito.
sintassi nohup:
# nohup command-with-options &
Nohup è molto utile quando devi eseguire uno script di shell o un comando che richiede molto tempo per finire. In tal caso, non si desidera essere connessi alla shell e attendere il completamento del comando. Invece, eseguilo con nohup, esci dalla shell e continua con il tuo altro lavoro.
Spiegazione su nohup.,out file
Per impostazione predefinita, lo standard output verrà reindirizzato a nohup.out file nella directory corrente. E l’errore standard verrà reindirizzato a stdout, quindi andrà anche a nohup.fuori. Quindi, il tuo nohup.out conterrà sia l’output standard che i messaggi di errore dallo script eseguito utilizzando il comando nohup.
Invece di usare nohup.fuori, è anche possibile reindirizzare l’output a un file utilizzando i normali reindirizzamenti della shell.,
Esempio: Stampa di linee su entrambi gli standard output & standard error
while(true)doecho "standard output"echo "standard error" 1>&2 sleep 1;done
Esegui lo script senza reindirizzamento
Esegui lo script con reindirizzamento
Se esci dalla shell e accedi di nuovo, vedrai comunque il custom-script.sh in esecuzione in background.
$ ps aux | grep sathiya sathiya 12034 0.0 0.1 4912 1080 pts/2 S 14:10 0:00 sh custom-script.sh