Restaurer la session SSH

13

Je me suis connecté à mon serveur via SSH et j'ai créé un processus, mais soudain ma connexion Internet s'est déconnectée. Je sais que le processus est en cours, mais comment restaurer la session précédente pour voir sa progression?

Arash Mousavi
la source

Réponses:

16

Comme suggéré ci-dessus, à l'avenir, vous pouvez utiliser l'écran pour empêcher une telle chose. Une courte explication sur la façon d'utiliser l'écran:

  1. screen -S compiling_stuff
  2. Faites des trucs ici. par exemple ./configure
  3. Si la connexion est fermée pour une raison quelconque, vous pouvez vous reconnecter au serveur et émettre screen -r comp
  4. Vous pouvez également détacher la session écran vous-même en appuyant sur CTRL+A+D

Bonne chance

Valentin Bajrami
la source
17

screen est le meilleur pour démarrer une commande dans un terminal qui sera conservée lorsque vous vous en déconnecterez (soit volontairement, ctrl + ad, soit parce que la connexion s'éteint, etc.).

TOUTEFOIS, VOUS POUVEZ rattacher un processus en cours d'exécution (ex: le shell de votre session en cours d'exécution, s'il est toujours en cours d'exécution) à votre terminal actuel (c.-à-d., Rattacher stdin, stdout, clavier, mais aussi faire du nouveau terminal le terminal de contrôle pour cela processus) en utilisant: reptyr

Pour le meilleur des deux mondes: installez screen, démarrez-le, puis rattachez ce processus dans ces sessions d'écran avec reptyr^^

Olivier Dulac
la source
Oliver, comment est-il possible de se rattacher au processus en cours? Pourriez-vous me donner un indice s'il vous plaît?
archer
@archer: astuce: suivez le lien ^^ (fin de mon 2ème paragraphe)
Olivier Dulac
@archer: mais l'écran est plus simple: une fois runnign dans l'écran, ctrl + ad: se détacher de l'écran (et rentrer à la maison). puis à rattacher à l'écran: "screen -r" (ou d'une manière plus complexe, si les choses se bloquent). Pour différencier les nombreuses sessions d'écran, donnez-leur un nom.
Olivier Dulac
7

Tu ne peux pas. À l'avenir, vous pouvez empêcher quelque chose comme ça en utilisant screenou tmux, qui a été créé pour permettre de se reconnecter à une session après une déconnexion.

Sven
la source
5

Je pensais juste mentionner http://mosh.mit.edu/

Application de terminal distant qui permet l'itinérance, prend en charge la connectivité intermittente et fournit un écho local intelligent et une modification de ligne des frappes utilisateur.

Mosh est un remplacement pour SSH. Il est plus robuste et réactif, en particulier sur les liaisons Wi-Fi, cellulaires et longue distance.

Jon Conley
la source
+1 pour les avertissements, je n'avais jamais entendu parler de cet outil auparavant!
Olivier Dulac
2

Utilisez screenvia ssh pour vous reconnecter ultérieurement à votre session.

Pour autant que je sache, il n'y a aucun moyen de se reconnecter à une session ssh fermée.

Uwe Plonus
la source
1

Je peux recommander Byobu :

Byobu est une amélioration pour les multiplexeurs de terminaux GNU Screen ou tmux qui peut être utilisée pour fournir une notification ou un état à l'écran ainsi qu'une gestion multi-onglets. Il vise à fournir une meilleure expérience utilisateur pour les sessions de terminal lors de la connexion à des serveurs distants.

Frank Zafka
la source
1

Je recommanderais d'utiliser tmux :

Vous pouvez restaurer la session tmux via tmux attach.

tmux est une application logicielle qui peut être utilisée pour multiplexer plusieurs consoles virtuelles, permettant à un utilisateur d'accéder à plusieurs sessions de terminal distinctes dans une seule fenêtre de terminal ou session de terminal distant. Il est utile pour gérer plusieurs programmes à partir d'une interface de ligne de commande et pour séparer les programmes du shell Unix qui a démarré le programme. [1] Il fournit plusieurs des mêmes fonctions que GNU Screen, mais est distribué sous licence BSD.

shyoo
la source