À mon grand étonnement, j'ai utilisé le CRIU ( https://criu.org ) pour faire un checkpoint et redémarrer un client mosh et ça a marché.
C'est choquant.
Trouvez le PID de votre mosh-client :
$ ps -ef | grep mosh
Ensuite, installez le CRIU en suivant leurs instructions.
Puis, faites un point de contrôle comme ceci :
$ mkdir checkpoint
$ sudo ./criu dump -D checkpoint -t PID --shell-job
Ensuite, restaurez-le :
$ sudo ./criu restore -D checkpoint --shell-job
Et voilà, c'est fait. Votre client mosh est de retour.
Une chose à noter, cependant, est que si votre ordinateur portable redémarre (ce qui est le but de ce que nous essayons de protéger contre), mosh utilise une monotonic
pour suivre le temps du côté client, ce qui ne fonctionne pas lors des redémarrages. Cependant, si votre ordinateur portable tombe en panne, cela ne fonctionnera PAS, car les numéros de séquence de mosh ne seront pas synchronisés avec la version qui a fait l'objet d'un point de contrôle (le binaire reprendra, mais la communication sera interrompue).
Pour résoudre ce problème, vous devez dire à mosh d'arrêter de faire cela et télécharger le code source de mosh. Ensuite, éditez ce fichier :
cd mosh
vim configure.ac
Ensuite, recherchez GETTIME
et commentez cette ligne.
Alors, faites-le :
autoreconf # ou ./autogen.sh si vous venez de le cloner pour la première fois
./configure
faire
faire installer
Après cela, vos sessions de clients mosh vérifiées par le CRIU survivront aux redémarrages.
(Évidemment, il faudrait écrire quelque chose pour effectuer les points de contrôle assez régulièrement pour être utile. Mais, c'est un exercice pour le lecteur).
1 votes
Normalement, Mosh reconnecte les sessions (ou essaie de le faire) si elles sont déconnectées. Lorsque vous entrez de nouvelles données, il essaie de se reconnecter (pour les connexions défaillantes ou les connexions qui changent). Pour les suiveurs, cette "session détachée de Mosh" se produit lorsque vous hard kill une fenêtre client.