Auch wenn dies keine direkte Antwort auf Ihre Frage ist, ist es sehr verwandt mit dem Problem, das Sie haben. Anstatt zu versuchen, die Verbindung am Leben zu erhalten (alle Verbindungen sterben schließlich), können Sie Terminal-Multiplexer wie screen
und tmux
verwenden, die die Sitzung im Hintergrund aufrechterhalten, auch wenn Ihr Terminal getrennt wird.
Wenn Sie sich am SSH-Server anmelden, führen Sie im Wesentlichen sofort screen
aus, das eine neue Sitzung erstellt und anhängt:
$ screen
Dann machen Sie weiter und arbeiten mit der Shell, wie Sie es normalerweise tun würden. Wenn nun die Verbindung unterbrochen wird und Sie wieder online gehen und sich über SSH mit dem Server verbinden können, erhalten Sie eine Liste der aktuellen Sitzungen mit
$ screen -ls
Um sich wieder mit einer Sitzung zu verbinden:
$ screen -r <session>
wobei <session>
die PID oder ein Sitzungsname ist. Sie werden wieder mit Ihrer Sitzung verbunden und können dort weitermachen, wo Sie aufgehört haben!
Sie können sogar die Sitzung trennen und die Verbindung von zu Hause aus wiederherstellen, um genau an der Stelle fortzufahren, an der Sie aufgehört haben. Um die Sitzung zu trennen, verwenden Sie C-a
gefolgt von C-d
(das heißt Control + A
und dann Control + D
).
Es gibt auch eine einfache Online-Anleitung .
Die Verwendung von screen
und tmux
auf entfernten Servern gilt als best practice und wird höchstens empfohlen. Manche Leute gehen sogar so weit, dass sie screen
als Standard-Login-Shell haben, so dass sie beim Verbinden sofort eine neue screen
-Sitzung starten.