Stellen Sie die SSH-Sitzung wieder her


13

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?

Antworten:


16

Wie oben vorgeschlagen, können Sie in Zukunft den Bildschirm verwenden, um dies zu verhindern. Eine kurze Erklärung zur Verwendung des Bildschirms:

  1. screen -S compiling_stuff
  2. Mach hier was. z.B ./configure
  3. Wenn die Verbindung aus irgendeinem Grund unterbrochen wird, können Sie die Verbindung zum Server wiederherstellen und das Problem beheben screen -r comp
  4. Sie können die Bildschirmsitzung auch selbst trennen, indem Sie drücken CTRL+A+D

Viel Glück


17

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.


5

Ich dachte nur, ich würde http://mosh.mit.edu/ erwähnen

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.


+1 für die Heads-up, ich habe noch nie von diesem Tool gehört!
Olivier Dulac

2

Verwenden Sie screenvia 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.


1

Ich kann Byobu empfehlen :

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.


1

Ich würde empfehlen, tmux zu verwenden :

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.