In genere, in Linux, quando la connessione si interrompe o l'utente si disconnette dal sistema, la sessione verrà terminata e tutti i processi eseguiti dal terminale si arresteranno. Se desideri che un programma o un comando continui a essere eseguito in background anche dopo la disconnessione o l'uscita dal sistema, potresti dover utilizzare il comando nohup.
Il comando nohup eseguirà altri programmi o comandi con i suoi argomenti forniti e ignorerà tutti i segnali di interruzione. Questo comando è utile, specialmente quando sei connesso al tuo server tramite SSH, e vuoi che il programma o il comando continuino a essere eseguiti in background anche dopo la disconnessione dal server.
Comando Linux Nohup
Sintassi:
nohup COMMAND [ARGS]
o
$ nohup options
Per trovare aiuto riguardo al comando nohup:
$ nohup --help
Per trovare le informazioni sulla versione di nohup, usa il comando seguente:
$ nohup --version
1. Esecuzione del comando in primo piano
Per impostazione predefinita, il comando nohum viene eseguito in primo piano e reindirizza l'output al file "nohup.output". Questo file verrà creato nella directory di lavoro corrente. Se l'utente non dispone dell'autorizzazione, verrà creata nella home directory dell'utente.
$ nohup ls
Esempio:
2. Esecuzione del comando in background
L'utilizzo del comando nohup in primo piano presenta lo svantaggio di non poter interagire con il terminale fino al termine dell'esecuzione del comando. Quindi, per evitare ciò, eseguiremo il comando in background in questo modo
$ nohup ping fosslinux.com
Esempio:
Puoi vedere nell'esempio sopra tutto l'output del comando verrà aggiunto al file nohup.out. Puoi visualizzare questo file usando il comando 'cat nohup' nel Terminale.
[1] 2233
Dove [1] è l'ID lavoro e 2233 è il (PID) del processo in background. Puoi utilizzare questo ID processo per terminare il processo in background:
$ kill 2233
Il comando precedente interromperà il processo in background.
3. Reindirizzamento dell'output su un file
Per impostazione predefinita, il comando nohup scrive l'output in nohup.out
file. Puoi anche definire il tuo file di output usando il reindirizzamento della shell standard.
$ nohup ls > list.out
Esempio:
Puoi anche creare file separati per l'output e l'errore utilizzando la seguente riga di comando.
nohup ls > list.out 2 > list.err
4. Esecuzione di più comandi
Puoi anche eseguire più comandi con nohup. Nell'esempio seguente, i comandi mkdir, bash e ls sono in esecuzione in background.
$ nohup bash -c 'mkdir fossDir && ls'
Esempio:
Conclusione
In questo tutorial, gli usi del comando nohup sono spiegati con semplici esempi e speriamo che ora tu possa capire molto bene l'utilità di questo comando. Sentiti libero di lasciare un commento.