Comando nohup di Linux
Sui sistemi operativi simili a Unix, il comando nohup esegue un altro comando e indica al sistema di continuare a eseguirlo anche se la sessione è disconnessa.
Questa pagina tratta la versione GNU/Linux di nohup.
Descrizione
Quando si utilizza la shell dei comandi, il prefisso di un comando con nohup impedisce che il comando venga interrotto automaticamente quando ci si disconnette o si esce dalla shell.
Il nome nohup sta per “no hangup”. Il segnale di riaggancio (HUP), che viene normalmente inviato a un processo per informarlo che l’utente si è disconnesso (o “riagganciato”), viene intercettato da nohup, consentendo al processo di continuare l’esecuzione.
Sintassi
nohup command [command-argument ...]
nohup --help | --version
Opzioni
–aiuto | Visualizza un messaggio di aiuto ed esci. |
–versione | Informazioni sulla versione di output ed esci. |
Appunti
Se lo standard input è un terminale, nohup lo reindirizza da /dev/null. Pertanto, l’input del terminale non è possibile quando si esegue un comando con nohup.
Se lo standard output è un terminale, l’output del comando viene aggiunto al file nohup.out, se possibile, o $HOME/nohup.out altrimenti.
Se l’errore standard è un terminale, viene reindirizzato allo standard output.
Per salvare l’output in un file denominato file, utilizzare “comando nohup > file”.
Esempi
nohup mycommand
Esegui il comando mycommand. Non riceve input. Tutto l’output, inclusi eventuali messaggi di errore, viene scritto nel file nohup.out nella directory di lavoro o nella directory home. Se mycommand è in esecuzione quando ci si disconnette o si chiude il terminale, mycommand non termina.
nohup mycommand &
Uguale al comando precedente, ma questo modulo (quando si utilizza la shell bash) ti riporta immediatamente al prompt della shell. Il simbolo “&” alla fine del comando indica a bash di eseguire nohup mycommand in background. Può essere riportato in primo piano con il comando integrato fg bash.
Quando si utilizza &, viene visualizzato l’ID del processo bash tra parentesi e il PID (ID processo) elencato dopo. Per esempio:
[1] 25132
È possibile utilizzare il PID per terminare prematuramente il processo. Ad esempio, per inviargli il segnale TERM (terminate) con il comando kill:
kill -9 25132
Comandi correlati
nice — Richiama un comando con una priorità di pianificazione alterata.