Kein lokales Werkzeug kann dies aufgrund dessen, was der Server "sieht":
- Wenn Sie die SSH-Verbindung ordnungsgemäß trennen, wird der Server dies sofort feststellen.
- Wenn Sie einfach verschwinden (z. B. durch einen harten Reset), bleibt die Verbindung auf der Serverseite bis zu einem Timeout offen (
ClientAlive*
Optionen vergleichen, TCP-Keepalive-Konzept - Einzelheiten finden Sie in dieser Antwort ).
Selbst wenn Sie beabsichtigen, ein tmux-resurrect
anderes Tool auf der lokalen Seite zu verwenden, weiß der Server dies nicht, es ist ihm egal. Es wird Ihren lang laufenden Code beenden, es sei denn, Sie verwenden nohup
oder besser…
Wenn möglich, verwenden Sie tmux
(oder screen
) auf dem Server :
tmux
Sitzung auf dem Client nicht betreten .ssh
zum Server.tmux
Sitzung auf dem Server starten- Starten Sie dort lang laufenden Code.
- Trennen Sie die Verbindung trotzdem: elegant oder nicht, mit oder ohne Entfernung von der Fernbedienung
tmux
. ssh
nochmal.- Ihre
tmux
Sitzung ist immer noch vorhanden (es sei denn, dem Server ist in der Zwischenzeit etwas Schlimmes passiert). wieder anbringen mittmux a
.
Ich benutze tmux
diesen Weg täglich und denke, dass dies der richtige Weg ist. Auf meinem Laptop tmux
dauert die Sitzung höchstens einige Stunden. Ich schalte ihn jeden Abend aus. Ich habe jedoch Zugriff auf einige Server, auf denen meine tmux
Sitzungen monatelang laufen. Wenn ich dies schreibe, watch df -h
läuft bei einem von ihnen der Prozess wörtlich für eine Woche in einer tmux
Sitzung, die wie vor zwei Monaten begonnen hat.