Ripristina sessione SSH


13

Mi sono connesso al mio server tramite SSH e ho creato un processo, ma all'improvviso la mia connessione Internet è stata disconnessa. So che il processo è in corso, ma come è possibile ripristinare la sessione precedente per vederne l'avanzamento?

Risposte:


16

Come suggerito sopra, in futuro è possibile utilizzare lo schermo per impedire tale cosa. Una breve spiegazione su come usare lo schermo:

  1. screen -S compiling_stuff
  2. Fai cose qui. per esempio ./configure
  3. Se la connessione viene chiusa per qualche motivo, è possibile riconnettersi al server ed eseguire il problema screen -r comp
  4. È possibile staccare anche la sessione dello schermo premendo CTRL+A+D

In bocca al lupo


17

screen è il migliore per avviare un comando in un terminale che verrà mantenuto quando ci si disconnette da esso (o di proposito, ctrl + annuncio, o perché la connessione si interrompe, ecc.).

TUTTAVIA PUOI ricollegare un processo in esecuzione (es: la shell della sessione in esecuzione, se ancora in esecuzione) al tuo terminale corrente (cioè ricollegare stdin, stdout, tastiera, ma anche fare del nuovo terminale il terminale di controllo per quello processo) utilizzando: reptyr

Per il meglio dei due mondi: installa screen, avvialo, quindi ricollega il processo in quelle sessioni dello schermo con reptyr^^


Oliver, come è possibile ricollegarsi al processo in esecuzione? Potresti darmi un suggerimento per favore?
arciere l'

@archer: suggerimento: segui il link ^^ (fine del mio secondo paragrafo)
Olivier Dulac,

@archer: ma lo schermo è più semplice: una volta che corri nella schermata, ctrl + annuncio: stacca dallo schermo (e vai a casa). quindi per ricollegarti allo schermo: "screen -r" (o un modo più complesso, se le cose si bloccano). Per differenziare tra molte sessioni dello schermo, dai loro un nome.
Olivier Dulac l'

7

Non puoi. In futuro, è possibile impedire qualcosa di simile con l'utilizzo di screeno tmux, che è stato creato per consentire di riconnettersi a una sessione dopo una disconnessione.


5

Ho pensato di menzionare http://mosh.mit.edu/

Applicazione terminale remota che consente il roaming, supporta la connettività intermittente e fornisce l'eco locale intelligente e la modifica della linea delle sequenze di tasti dell'utente.

Mosh è un sostituto di SSH. È più robusto e reattivo, soprattutto tramite collegamenti Wi-Fi, cellulari e interurbani.


+1 per l'heads up, non avevo mai sentito parlare di quello strumento prima!
Olivier Dulac il

2

Utilizzare screenvia ssh per riconnettersi successivamente alla sessione.

Per quanto ne so, non c'è modo di riconnettersi a una sessione SSH chiusa.


1

Posso raccomandare Byobu :

Byobu è un miglioramento per i multiplexer terminali GNU Screen o tmux che può essere utilizzato per fornire notifiche o stato sullo schermo, nonché la gestione multi-finestra a schede. Ha lo scopo di fornire una migliore esperienza utente per le sessioni del terminale durante la connessione a server remoti.


1

Consiglierei di usare tmux :

È possibile ripristinare la sessione di tmux tramite tmux attach.

tmux è un'applicazione software che può essere utilizzata per il multiplexing di diverse console virtuali, consentendo all'utente di accedere a più sessioni di terminale separate all'interno di una singola finestra di terminale o sessione di terminale remoto. È utile per gestire più programmi da un'interfaccia a riga di comando e per separare i programmi dalla shell Unix che ha avviato il programma. [1] Fornisce molte delle stesse funzioni di GNU Screen, ma è distribuito con una licenza BSD.

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.