Come posso mantenere un comando che ho avviato dalla shell in esecuzione se esco dalla shell?


12

Quali metodi esistono per mantenere in esecuzione un comando che è stato avviato dalla shell dopo il logout dalla shell?

Risposte:


11
  • Per mettere l'applicazione in background, utilizzare &:

    command &
    
  • Se si desidera chiudere il terminale, e mantenere l'applicazione in esecuzione, è possibile utilizzare diverse opzioni: , e .screen Schermata di installazionedtach Installa dtachnohup

    nohup command &
    
  • Lo schermo è utile in quanto è possibile riavviare una sessione e anche dtach è divertente.

  • Guarda i seguenti link per maggiori informazioni


non funziona anche l'aggiunta di un &alla fine del comando?
theTuxRacer,

2
@ Kaustubh-P usando & è spesso un buon habbit per chiudere i terminali tramite il comando 'exit', senza premere il pulsante X di chiusura. E fa funzionare il comando in background. che può comunque forzare l'uscita dei programmi in background.
karthick87,

5

Utilizzare il comando nohup in questo modo:

nohup gedit /home/user/file.txt &

Come rimuovere anche nohup: ignorare l'input e reindirizzare stderr a stdout
Amruth A

5

Un utile comando (bash?) È disown. la cosa bella è che funziona per un lavoro già in esecuzione (a proposito, rinneghi i lavori, non i processi, quindi devi fare un processo ctrl-Z, bgprima di eseguire il rinnegamento sul tuo lavoro. Ad esempio, immagina di fare quanto segue:

local % ssh some.where.com
remote % verylongscript.sh

Ora ti rendi conto che devi andare ma non vuoi che la sceneggiatura venga uccisa all'uscita, quindi tu

ctrl-Z
remote % bg
remote % disown
remote % exit
local %

Ora, il remotetuo script è ancora in esecuzione.


1

Io uso

nohup mycommand &

Ad esempio, per visualizzare un server virtuale VirtualBox, digito quanto segue in una shell remota (che poi chiudo):

nohup VBoxHeadless --startvm "myvm" --vrdp=off &
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.