Aula Sobre o Comando NOHUP #LINUX
Sommario:
- Come usare il comando nohup
- Esecuzione del comando in background
- Reindirizzamento dell'output su un file
- alternative
- Schermo
- tmux
- rinnegare
- Conclusione
Il comando
nohup
esegue un altro programma specificato come argomento e ignora tutti i
SIGHUP
(hangup).
SIGHUP
è un segnale che viene inviato a un processo quando il suo terminale di controllo è chiuso.
Di solito, quando si esegue un programma su SSH, se la connessione si interrompe o ci si disconnette, la sessione viene terminata e tutti i processi eseguiti dal terminale verranno interrotti. Qui è dove il comando
nohup
è utile. Ignora tutti i segnali di riaggancio e il processo continuerà a essere eseguito.
Come usare il comando nohup
La sintassi per il comando
nohup
è la seguente:
nohup COMMAND
Il comando non accetta altre opzioni ad eccezione di
--help
e
--version
standard.
Diamo un'occhiata al seguente esempio:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
esegue il comando
mycommand
in primo piano e reindirizza l'output del comando al file
nohup.out
. Questo file viene creato nella directory di lavoro corrente. Se l'utente che esegue il comando non dispone delle autorizzazioni di scrittura per la directory di lavoro, il file viene creato nella home directory dell'utente.
Se si disconnette o si chiude il terminale, il processo non viene terminato.
Esecuzione del comando in background
L'uso di
nohup
in primo piano non è molto utile perché non sarai in grado di interagire con la shell fino al completamento del comando.
Per eseguire il comando in background aggiungi il simbolo
&
alla fine del comando:
nohup mycommand &
L'output include l'ID lavoro shell (racchiuso tra parentesi) e l'ID processo:
25177
È possibile utilizzare l'ID lavoro per portare il comando in primo piano utilizzando il comando
fg
.
Se per qualche motivo vuoi terminare il processo, usa il comando
kill
seguito dall'ID processo:
Reindirizzamento dell'output su un file
Per impostazione predefinita,
nohup
reindirizza l'output del comando sul file
nohup.out
. Se si desidera reindirizzare l'output su un file diverso, utilizzare il reindirizzamento della shell standard.
Ad esempio, per reindirizzare l'output standard e l'errore standard su
mycommand.out
dovrai utilizzare:
nohup mycommand > mycommand.out 2>&1 &
Per reindirizzare l'output standard e l'errore standard su file diversi:
nohup mycommand > mycommand.out 2> mycommand.err &
alternative
Esistono diversi programmi alternativi che è possibile utilizzare per evitare che un comando venga interrotto alla chiusura del terminale o alla disconnessione.
Schermo
Screen o GNU Screen è un programma multiplexer terminale che consente di avviare una sessione dello schermo e aprire un numero qualsiasi di finestre (terminali virtuali) all'interno di quella sessione. I processi in esecuzione sullo schermo continueranno a essere eseguiti quando la loro finestra non è visibile anche se si viene disconnessi.
tmux
Tmux è una moderna alternativa allo schermo GNU. Con Tmux, puoi anche creare una sessione e aprire più finestre all'interno di quella sessione. Le sessioni di Tmux sono persistenti, il che significa che i programmi in esecuzione in Tmux continueranno a funzionare anche se si chiude il terminale.
rinnegare
disown
è un builtin della shell che rimuove un lavoro shell dal controllo dei lavori della shell. A differenza di
nohup
, è possibile utilizzare anche il
disown
sui processi in esecuzione.
Conclusione
nohup
consente di impedire la chiusura dei comandi quando ci si disconnette o si esce dal terminale.
Cogli la riga di comando con il comando Take

Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Comando chmod in linux (permessi dei file)

In Linux l'accesso ai file è gestito attraverso le autorizzazioni, gli attributi e la proprietà dei file. Questa esercitazione illustra come utilizzare il comando chmod per modificare le autorizzazioni di accesso a file e directory.
Comando chgrp in linux (cambia gruppo)

In Linux, ogni file è associato a un proprietario e un gruppo e dispone di autorizzazioni che determinano quali utenti possono leggere, scrivere o eseguire il file. Il comando chgrpc modifica la proprietà del gruppo di determinati file.