Zu meinem Erstaunen habe ich CRIU ( https://criu.org ) verwendet, um einen Mosh-Client zu überprüfen und neu zu starten, und es hat funktioniert.
Schockierend.
Finden Sie die PID Ihres Mosh-Clients:
$ ps -ef | grep mosh
Installieren Sie dann CRIU gemäß den Anweisungen.
Dann überprüfen Sie es wie folgt:
$ mkdir Checkpoint
$ sudo ./criu dump -D checkpoint -t PID --shell-job
Stellen Sie es dann wieder her:
$ sudo ./criu restore -D checkpoint --shell-job
Und da ist es. Ihr Mosh-Client ist zurück.
Beachten Sie jedoch, dass mosh beim Neustart Ihres Laptops (vor dem wir uns schützen wollen) eine monotonic
Uhr verwendet, um die Zeit auf der Clientseite zu verfolgen, was bei Neustarts nicht funktioniert. Dies funktioniert jedoch NICHT, wenn Ihr Laptop einfach nur abstürzt, funktioniert es nicht, da die Mosh-Sequenznummern nicht mit der Version synchronisiert sind, auf die geprüft wurde (die Binärdatei wird fortgesetzt, die Kommunikation wird jedoch gestoppt).
Um dies zu beheben, müssen Sie mosh anweisen, dies zu beenden und den mosh-Quellcode herunterzuladen. Bearbeiten Sie dann diese Datei:
cd mosh
vim configure.ac
Suchen Sie dann nach GETTIME
dieser Zeile und kommentieren Sie sie aus.
Dann mach:
autoreconf # oder ./autogen.sh, wenn Sie es gerade zum ersten Mal geklont haben
./konfigurieren
machen
make install
Danach überleben Ihre CRIU-Checkpoint-Mosh-Client-Sitzungen Neustarts.
(Natürlich müssten Sie etwas schreiben, um die Checkpoints regelmäßig genug durchzuführen, um nützlich zu sein. Aber das ist eine Übung für den Leser).