Ku mojemu zdumieniu użyłem CRIU ( https://criu.org ) do sprawdzenia i ponownego uruchomienia klienta mosh i zadziałało.
Wstrząsający.
Znajdź PID swojego klienta mosh:
$ ps -ef | grep mosh
Następnie zainstaluj CRIU zgodnie z ich instrukcjami.
Następnie sprawdź to w ten sposób:
Punkt kontrolny $ mkdir
$ sudo ./criu dump -D punkt kontrolny -t PID --shell-job
Następnie przywróć go:
$ sudo ./criu restore -D punkt kontrolny --shell-job
I oto jest. Twój klient mosh powrócił.
Należy jednak zauważyć, że jeśli twój laptop się zrestartuje (a to jest sednem tego, przed czym staramy się chronić), mosh używa monotonic
zegara do śledzenia czasu po stronie klienta, który nie działa po ponownym uruchomieniu. To NIE zadziała, jednak jeśli twój laptop po prostu się zawiesza, nie zadziała, ponieważ numery sekwencji mosh nie będą zsynchronizowane z wersją, która była punktem kontrolnym (plik binarny zostanie wznowiony, ale komunikacja zostanie zatrzymana).
Aby to naprawić, musisz powiedzieć moshowi, aby przestał to robić i pobrać kod źródłowy mosh. Następnie edytuj ten plik:
cd mosh
vim configure.ac
Następnie wyszukaj GETTIME
i zakomentuj tę linię.
Następnie wykonaj:
autoreconf # lub ./autogen.sh, jeśli sklonowałeś go po raz pierwszy
./configure
robić
dokonać instalacji
Następnie sesje klienta mosh z punktami kontrolnymi CRIU przetrwają ponowne uruchomienie.
(Oczywiście musiałbyś napisać coś, aby regularnie wykonywać punkty kontrolne, aby były użyteczne. Ale to jest ćwiczenie dla czytelnika).