Continua attività / lavori in background SSH quando chiudi SSH


27

Ho la stessa domanda qui, ma anche oltre.

Se disconnetto / esco dalla connessione SSH, ho bisogno che il mio programma sia eseguito in background. Prima di uscire, digito bge jobsper controllare l'attività in esecuzione in background, ma dopo essere uscito da SSH, il programma non viene eseguito, si chiude quando chiudo la finestra di SSH.

Cosa posso fare se voglio che il mio programma sia ancora in esecuzione dopo aver chiuso la finestra SSH? Uso nohup screenma non funziona o mi manca qualcosa?


Benvenuto in Super User! Per favore non inserire la tua risposta alla domanda. Pubblicalo come una risposta qui sotto una volta che puoi (in circa 7 ore) usando il pulsante Rispondi alla tua domanda . Grazie. (Nota anche che non è necessario aggiungere <br/>messaggi al tuo post. Crea solo i paragrafi secondo necessità. E mentre ci sei, usa le
lettere

A proposito, non è necessario utilizzare bgo nohupquando si utilizza screen. Anche questa domanda è correlata.
appena sopraggiunto il

fai questo thread @ overflow dello stack stackoverflow.com/questions/285015/…
Ashildr

Risposte:


46

Quando usi screendevi staccarti con CTRL+A+ Dprima di uscire ssh.

In alternativa, se si desidera eseguire un processo direttamente con lo schermo, è possibile utilizzare

screen -dmSL [session name] [commands]
  • -d avvia una sessione dello schermo e si stacca immediatamente da essa
  • -m forza la creazione di una nuova sessione schermo
  • -S ti permette di dare un nome alla sessione
  • -L attiva la registrazione su ~/screenlog.0

esempio:

screen -dmSL workstuff myscript.sh

È quindi possibile:

riprendere in seguito utilizzando screen -x workstuff

o

controlla il file di registro less -r ~/screenlog.0


14

Usa tmux. Non sono nemmeno sicuro che screensia ancora in fase di sviluppo attivo. È una specie di preferenza, ma come qualcuno che usa tmux, posso testimoniare che si è impostato in circa 5 minuti e ha funzionato perfettamente.

Su un sistema basato su Debian (sul computer remoto):

sudo apt-get install tmux

quindi invio tmuxper entrare, eseguire qualsiasi processo sia necessario e premere Ctrl+ Bquindi D(questo lascia la sessione di tmux). Quindi, è possibile disconnettersi da SSH.

Quando devi tornare / controllarlo di nuovo, avvia SSH ed entra tmux attach. Ti riporterà alla tua tmuxsessione.

tmuxha molte più capacità, come dettagliato qui. Ma questo dovrebbe risolvere il tuo problema immediato.

In bocca al lupo!


7

Alla fine l'ho risolto usando screen:

In modalità schermo, staccalo usando CtrlAD. Quindi puoi chiudere la finestra SSH.


5

nohup use: il primo dei comandi seguenti avvia il programma abcd in background in modo tale che il logout successivo non lo fermi.

$ nohup abcd &

$ uscita

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.