J'ai généralement plusieurs fenêtres de terminal dont chacune est connectée via ssh à un serveur distant. Dans chaque fenêtre, je travaille en utilisant le programme d'écran gnu, pour assurer la persistance des processus interactifs en cas de déconnexion.
Actuellement, chaque fois que la connexion ssh tombe (par exemple lorsque je mets mon ordinateur client en veille pendant la nuit), je dois redémarrer manuellement et fastidieusement la session ssh à l'intérieur de chaque fenêtre, puis dans chaque fenêtre, reprendre fastidieusement la session d'écran spécifique (par exemple, "écran - r 3453 "dans une fenêtre," écran -r 3462 "dans l'autre, etc.)
Existe-t-il un moyen élégant d'automatiser cela? Plus précisément:
reconnectez la session ssh si elle tombe, dès qu'une connexion Internet est détectée
exécuter l'instance d'écran spécifique pour la fenêtre du terminal dès que ssh se reconnecte
Merci pour tous les conseils à ce sujet
la source
Pas besoin de pirater les boucles bash. Vous devez vous pencher sur l' autossh . Je ne l'ai pas beaucoup utilisé moi-même, mais je crois comprendre que vous remplacez simplement
ssh
parautossh
dans votre commande.Edit: En fait, autossh est livré avec un script appelé
rscreen
qui semble être conçu exactement à cette fin.la source