Comment reconnecter accidentellement déconnecté de la session ssh SANS screen ou tmux
Je sais que ces types de questions ont été posées depuis des années, et la réponse sont souvent screen
ou tmux
.
J'ai sûrement utiliser screen
au début, si je sais que je vais quitter la session pour une longue période de temps, ou le réseau est trop mauvais pour maintenir une connexion fiable.
Le principal problème est que quand je démarre la session de certains et à trouver cela doit durer longtemps plus tard, ou que la connexion vient de perdre accidentellement. Dans ce dernier cas, souvent, quand je commence une autre session immédiatement, je peux trouver les cours du processus ne sont pas tués à ce moment, mais je n'ai aucun moyen de se reconnecter à leur terminal.
Donc je me demande si il est possible de prévenir les processus normaux de tués, même longtemps après avoir accidentellement déconnecté de la session ssh. Et le plus important est que je suis reconnecter à leurs bornes avec départ dans screen
à l'avance.
Si pas, il est possible de déplacer un déjà commencé à nu de la session ssh dans un nouveau screen
session pour vous reconnecter plus tard?
habituellement, il n'est pas que je ne veux pas, mais juste parce que c'est trop tard comme je l'ai dit dans la question (déconnecté accidentellement ou de réaliser j'ai besoin d'un écran à mi-chemin, une session). BTW, l'écran de briser tampon de mastic et de iterm qui permet de rechercher facilement par glisser la barre de défilement, peut-être il peut être modifié? Mais je suis trop paresseux pour résoudre ce problème.
OriginalL'auteur lyu | 2013-11-22
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas que c'est possible sans quelque chose comme de l'écran. Une fois que votre pseudo-TTY est perdu, je suis presque certain qu'il ne peut pas être récupéré à partir d'un autre shell (au moins pas sans une certaine narly hacks).
Aussi loin que l'ajout d'un processus existant à un nouvel écran, je pense que c'est possible. Essayez les instructions ici: http://monkeypatch.me/blog/move-a-running-process-to-a-new-screen-shell.html
O besoin reptyr pour cela.
OPTION 2:
Je soupçonne que vous pouvez essayer de résoudre le mauvais problème. Si votre connexion SSH est en baisse pourquoi ne pas s'attaquer qui? Vous pouvez configurer SSH pour être incroyablement tolérant de délais d'attente et se déconnecte en modifiant vos paramètres de connexion.
Sur votre client, dans
$HOME/.ssh/config
ajouter:Maintenant vos sessions de ne pas timeout même si le serveur ne répond pas pendant 5 minutes.
L'Option 2 consiste à réduire au minimum le risque de perdre votre connexion dans la première place. Même si votre internet s'éteint pendant 4 minutes les options ci-dessus permettront de garder votre session. Mais oui, une fois qu'il est vraiment allé (comme un redémarrage du client, accidentellement fermé terminal, etc) puis c'est assez bien.
Merci, j'ai eu l'option 2 maintenant. Mais l'Option 1 a un problème:
Problèmes: 1. Si je laisse l'ancien terminal de l'ouvrir et ne reptyr dans un nouveau terminal, la sortie est à lier à la nouvelle aérogare, mais ctrl-z arrêt de travail dans le nouveau joint de processus (ctrl-c fonctionne toujours). 2. Si l'ancien terminal est fermé, quand reptyr dans une nouvelle, il donne à la "[-] expiration du délai d'attente pour l'enfant d'arrêter." et de cesser de répondre à tous. 3. il semble reptyr toujours pas de support des processus enfants (shell script généralement pas travailler avec reptyr).
Ok, j'ai peut obtenir le problème 2, renier seulement de prévenir SIGHUP lorsque le terminal se termine, mais stdout//err toujours vous connecter à la console, donc peut-être un nouveau terminal doit être de début et de reptyr pour que, avant de fermer l'ancien. Cela a du sens.
OriginalL'auteur SpliFF
Utiliser ssh-tmux au lieu de tmux:
OriginalL'auteur Sandeep
J'ai travaillé sur un fichier texte à l'aide de nano et je suis déconnecté. Après je me suis connecté, j'ai vu le nano processus de la session précédente était toujours en cours, mais je ne pouvais pas passer que les nano instance. Donc, j'ai tué le nano processus et ensuite, elle a créé un fichier nommé: nom de fichier.enregistrer, Qui avait mes changements de la première session.
OriginalL'auteur volatile