Ich habe über SSH eine Verbindung zu meinem Server hergestellt und einen Prozess erstellt, aber plötzlich wurde meine Internetverbindung getrennt. Ich weiß, dass der Prozess läuft, aber wie kann ich die vorherige Sitzung wiederherstellen, um den Fortschritt zu verfolgen?
Wie oben vorgeschlagen, können Sie in Zukunft den Bildschirm verwenden, um dies zu verhindern. Eine kurze Erklärung zur Verwendung des Bildschirms:
screen -S compiling_stuff
Mach hier was. z.B ./configure
Wenn die Verbindung aus irgendeinem Grund unterbrochen wird, können Sie die Verbindung zum Server wiederherstellen und das Problem beheben screen -r comp
Sie können die Bildschirmsitzung auch selbst trennen, indem Sie drücken CTRL+A+D
screen Am besten starten Sie einen Befehl in einem Terminal, der beibehalten wird, wenn Sie die Verbindung trennen (entweder absichtlich, Strg + Anzeige oder weil die Verbindung unterbrochen wird usw.).
JEDOCH KÖNNEN Sie einen laufenden Prozess (z. B. die Shell Ihrer laufenden Sitzung, falls er noch läuft) erneut an Ihr aktuelles Terminal anschließen (z. B. stdin, stdout, keyboard erneut anschließen, aber das neue Terminal auch zum steuernden Terminal dafür machen prozess) mit: reptyr
Für das Beste aus beiden Welten: Installieren screen, starten und diesen Prozess in diesen Bildschirmsitzungen mit reptyr^^ erneut anhängen
Oliver, wie ist es möglich, sich wieder an den laufenden Prozess anzuschließen? Könnten Sie mir bitte einen Hinweis geben?
Bogenschütze
@archer: Hinweis: Folgen Sie dem Link ^^ (Ende meines 2. Absatzes)
Olivier Dulac
@archer: aber der Bildschirm ist einfacher: Sobald Sie auf dem Bildschirm angemeldet sind, drücken Sie Strg + Anzeige: Trennen Sie sich vom Bildschirm (und gehen Sie nach Hause). dann zum erneuten Anhängen an den Bildschirm: "screen -r" (oder eine komplexere Methode, wenn die Dinge hängen bleiben). Um zwischen vielen Screen-Sessions zu unterscheiden, geben Sie ihnen einen Namen.
Olivier Dulac
7
Das kannst du nicht. In Zukunft können Sie so etwas verhindern, indem Sie screenoder verwenden tmux, das erstellt wurde, um nach einem Verbindungsabbruch erneut eine Verbindung zu einer Sitzung herstellen zu können.
Remote-Terminal-Anwendung, die Roaming ermöglicht, intermittierende Konnektivität unterstützt und intelligentes lokales Echo und Leitungsbearbeitung von Benutzertastenanschlägen bietet.
Mosh ist ein Ersatz für SSH. Es ist robuster und reaktionsschneller, insbesondere über Wi-Fi, Mobilfunk und Fernverbindungen.
Byobu ist eine Erweiterung für die Terminal-Multiplexer GNU Screen oder tmux, mit denen Benachrichtigungen oder Statusinformationen auf dem Bildschirm sowie die Verwaltung von Mehrfachfenstern mit Registerkarten bereitgestellt werden können. Es soll eine bessere Benutzererfahrung für Terminalsitzungen beim Herstellen einer Verbindung zu Remoteservern bieten.
Sie können die tmux-Sitzung über wiederherstellen tmux attach.
tmux ist eine Softwareanwendung, mit der mehrere virtuelle Konsolen gemultiplext werden können, sodass ein Benutzer innerhalb eines einzelnen Terminalfensters oder einer Remote-Terminalsitzung auf mehrere separate Terminalsitzungen zugreifen kann. Es ist nützlich, um mit mehreren Programmen über eine Befehlszeilenschnittstelle umzugehen und um Programme von der Unix-Shell zu trennen, die das Programm gestartet hat. [1] Es bietet viele der gleichen Funktionen wie GNU Screen, wird jedoch unter einer BSD-Lizenz vertrieben.
Das kannst du nicht. In Zukunft können Sie so etwas verhindern, indem Sie
screen
oder verwendentmux
, das erstellt wurde, um nach einem Verbindungsabbruch erneut eine Verbindung zu einer Sitzung herstellen zu können.quelle
Ich dachte nur, ich würde http://mosh.mit.edu/ erwähnen
quelle
Verwenden Sie
screen
via ssh, um später wieder eine Verbindung zu Ihrer Sitzung herzustellen.Soweit ich weiß, gibt es keine Möglichkeit, sich wieder mit einer geschlossenen SSH-Sitzung zu verbinden.
quelle
Ich kann Byobu empfehlen :
quelle
Ich würde empfehlen, tmux zu verwenden :
Sie können die tmux-Sitzung über wiederherstellen
tmux attach
.quelle