Ogni comando in Linux avvia un processo al momento della sua esecuzione, che viene automaticamente terminato all'uscita dal terminale. Supponiamo che tu stia eseguendo programmi su SSH e se la connessione si interrompe, la sessione verrà terminata, tutti i processi eseguiti si interromperanno e potresti dover affrontare un'enorme crisi accidentale. In questi casi, l'esecuzione di comandi in background può essere molto utile per l'utente ed è qui che comando nohup entra in scena. nohup (senza riattaccare) è un comando nei sistemi Linux che esegue il processo anche dopo essersi disconnessi dalla shell/terminale.
Comando Nohup
Di solito, a ogni processo nei sistemi Linux viene inviato un file SIGHUP (Segnale riagganciare) che è responsabile della conclusione del processo dopo la chiusura/uscita dal terminale. Il comando Nohup impedisce al processo di ricevere questo segnale alla chiusura o all'uscita dal terminale/shell. Una volta avviato o eseguito un lavoro utilizzando il comando nohup, stdin non sarà disponibile per l'utente e niente.fuori file viene utilizzato come file predefinito per stdout E stderr . Se l'output del comando nohup viene reindirizzato a qualche altro file, niente.fuori il file non viene generato.
Sintassi del comando Nohup
La sintassi per utilizzare il comando Nohup è semplice:
converti int in double java
nohup command [options] &>
-
`command`>: specifica il comando o lo script che si desidera eseguire. -
`[options]`>: argomenti o flag facoltativi che modificano il comportamento del comando. -
`&`>: L'inserimento di una e commerciale (&) alla fine del comando indica alla shell di eseguire il comando in background.
Lavorare con il comando nohup
- Controllo della versione di Nohup
- Avvio di un processo utilizzando Nohup
- Avvio di un processo in background utilizzando Nohup
- Per eseguire più comandi in background
Controllo della versione di Nohup
Controllare la versione di Nohup è un processo semplice. In genere puoi verificare la versione di Nohup installata sul tuo sistema utilizzando il file ` --version`> bandiera. Esegui semplicemente il seguente comando:
nohup --version>
Produzione:
Avvio di un processo utilizzando Nohup
Per avviare un processo utilizzando Nohup, è sufficiente anteporre il comando desiderato connohup>. Ad esempio, se desideri eseguire uno script bash denominatogeekfile.py>usando Nohup, dovresti usare il seguente comando:
nohup bash geekfile.sh>
Produzione:
data Java corrente
Per reindirizzare l'output al file output.txt file:
nohup bash geekfile.sh>output.txt>
Produzione:
ordine casuale sql
Avvio di un processo in background utilizzando Nohup
Per eseguire il comando in background, il pulsante ' &’ Il simbolo viene aggiunto alla fine del comando. Dopo l'esecuzione, non ritorna al prompt dei comandi della shell dopo aver eseguito il comando in background. Può essere riportato in primo piano con il fig comando.
nohup bash geekfile.sh & fg>
Produzione:
Nota: Il numero tra parentesi quadre rappresenta il identificativo del lavoro e il numero accanto è il identificativo del processo .
Per eseguire più comandi in background
Il comando nohup può essere utilizzato per eseguire più comandi in background.
nohup bash -c 'commands'>
Esempio:
nohup bash -c 'cal && ls'>
Produzione:
Qui, l'output verrà archiviato per impostazione predefinita in niente.fuori . Per reindirizzarlo, digitare:
nohup bash -c 'commands'>nomefile.txt>
Esempio:
nohup bash -c 'cal && ls'>output.txt>
Produzione:
operatore condizionale in Java
Comando nohup in Linux – Domande frequenti
Quale è nohup> comando in Linux e cosa fa?
IL
nohup>il comando significa 'non riagganciare'. Ti consente di eseguire un comando o uno script di shell in modo tale che continui a essere eseguito anche dopo esserti disconnesso o aver chiuso il terminale. Ciò impedisce che il comando venga terminato al termine della sessione del terminale.fare mentre sei in Java
Come utilizzo il nohup> comando?
Usare
nohup>, anteponilo semplicemente al comando che desideri eseguire. Per esempio:nohup command_to_run &>IL
&>Il simbolo alla fine mette il comando in background, consentendoti di continuare a utilizzare il terminale mentre il comando viene eseguito.
Dove va nohup> inviare l'output del comando?
Per impostazione predefinita,
nohup>reindirizza sia l'output standard (stdout) che l'errore standard (stderr) a un file denominatonohup.out>nella directory corrente. Se lo si desidera, è possibile specificare un file di output diverso.
Posso usare nohup> con comandi o programmi interattivi?
Mentre
nohup>viene generalmente utilizzato con comandi o script non interattivi, è possibile utilizzarlo con comandi interattivi. Tuttavia, il comportamento potrebbe essere imprevedibile, soprattutto se il comando prevede input da parte dell'utente. In genere si consiglia di evitare l'usonohup>con programmi interattivi.
Come posso verificare lo stato di un comando in esecuzione con nohup> ?
Da
nohup>esegue il comando in background, puoi utilizzare strumenti Linux standard comeps>Otop>per verificare lo stato del processo. Per esempio:ps aux | grep>Questo ti mostrerà le informazioni sul processo, incluso il suo PID (ID processo), che potrai quindi utilizzare per gestire o monitorare il comando.
Conclusione
In Linux, quando esegui un comando, di solito si interrompe quando chiudi il terminale. Ma con nohup> , puoi mantenerlo in esecuzione anche dopo aver chiuso il terminale. Questo è molto utile, soprattutto se stai eseguendo comandi da remoto e non vuoi che si interrompano se la tua connessione si interrompe.nohup>funziona proteggendo il tuo comando dai segnali che normalmente lo fermerebbero. Aggiungi e bastanohup>prima del tuo comando, e va avanti. Puoi anche inviare l'output del comando a un file. Ricorda solo che è meglio per attività non interattive e puoi verificare lo stato del tuo comando utilizzando strumenti comeps>. COSÌ,nohup>è come una rete di sicurezza per i tuoi comandi, assicurando che continuino a funzionare anche quando non stai guardando.