Ich arbeite gerade an einem entfernten CentOS 5.6-Computer, und mein Netzwerk fällt immer weiter aus. Gibt es eine Möglichkeit, meine unterbrochenen Sitzungen wiederherzustellen, nachdem ich die Verbindung wiederhergestellt habe?
BEARBEITEN: Ich aktualisiere und installiere mit yum und mache mir Sorgen, dass dies ein Problem sein könnte, wenn Prozesse in der Mitte von allem, was sie tun, hängen bleiben.
linux
session
shell
networking
Jeff Schaller
quelle
quelle
Antworten:
Es gibt keinen Weg, aber um dies zu verhindern, benutze ich gerne
tmux
. Ich starte tmux, starte die Operation und mache mich auf den Weg. Wenn ich zurückkomme und feststelle, dass die Verbindung unterbrochen wurde, muss ich nur noch eine Verbindung herstellen und tippentmux attach
.Hier ist ein Beispiel.
quelle
screen
.Die Empfehlungen für tmux und screen sind gute Vorschläge. Sie implizieren die Antwort auf Ihre Frage, geben diese jedoch nicht an. Die Antwort auf die Frage lautet: Es gibt keinen Weg. Wenn Sie sich über ssh anmelden, wird die Shell beendet, wenn die Verbindung getrennt wird. Die Problemumgehung besteht darin, sich anzumelden und sofort ein virtuelles Terminal (z. B.
tmux
) zu starten . Wenn die Verbindung getrennt wird, wird die Shell, in der Sie sich befinden, beendet. Sie können jedoch eine neue Shell öffnen und die Verbindung zum virtuellen Terminal (auf dem die Shell ausgeführt wird, in der Sie gerade arbeiten) wiederherstellen.quelle
Wie William sagte, ist die kurze Antwort nein, es gibt keinen Weg. Um dies zu verhindern, können Sie den Befehl screen verwenden, bevor Sie die Verbindung verlieren
quelle
Nein, Sie können eine Shell nach einer Unterbrechung nicht wiederherstellen. Stattdessen können Sie sicherstellen, dass der von Ihnen ausgeführte Befehl auch nach dem Trennen der Verbindung ausgeführt wird.
Verwenden Sie dazu die Befehle "nohup" und "disown", die normalerweise in den meisten Shells enthalten sind, dh, Sie müssen nichts installieren. Dies funktioniert jedoch nur bei nicht interaktiven Befehlen.
Die Schritte wären also wie folgt:
Wenn Sie zum Server zurückkehren, rufen Sie einfach "tail nohup.out" auf, um zu sehen, wie der Befehl ausgeführt wird.
quelle
Jemand hat reptyr in einem Kommentar hinzugefügt und nicht in einer Antwort, daher kann ich es nicht empfehlen, aber es scheint eine gute Antwort auf die bearbeitete Frage zu sein und hat in CentOS hervorragend funktioniert.
siehe: https://github.com/nelhage/reptyr https://www.ostechnix.com/reptyr-move-running-process-new-terminal/
Aus diesem Grund habe ich die Remote-Verbindung zu einer YUM-Update-Sitzung verloren. Also habe ich nach dieser Frage gesucht und sie gefunden. Dann habe ich sie wieder angeschlossen und diesmal den Bildschirm verwendet:
und da bin ich bei der wiederhergestellten Eingabeaufforderung, die Yum einige Stunden zuvor gegeben hat.
Technisch gesehen sind alle Antworten korrekt. Dies ist KEINE Wiederherstellung einer unterbrochenen Sitzung, sondern die Wiederherstellung eines verwaisten Prozesses für die aktuelle Sitzung. Und sehr nützlich ist es auch ...
quelle
Wie viele Leute vorgeschlagen haben
screen
undtmux
, unterstützen beide grundlegende Funktionen, haben jedoch unterschiedliche spezifische Merkmale, so dass man nicht sagen kann, dass man in allen Fällen dem anderen überlegen ist. Zum Beispiel unterstützt nur tmux Window-Splitting , während nur GNU-Bildschirme den Zeilenumbruch mit (Strg + Ar) umschalten können . Siehe detaillierter Vergleich hier .Es gibt auch spezielle Tools, um dieses Problem von ssh zu beheben:
Autossh ist ein Programm zum Starten und Überwachen einer Kopie von ssh, das bei Bedarf neu gestartet wird, falls es abstürzt oder keinen Datenverkehr mehr durchläuft. Die Idee kommt von rstunnel.
Mosh ist eine Remote-Terminal-Anwendung, die Roaming ermöglicht, intermittierende Konnektivität unterstützt und eine intelligente lokale Echo- und Leitungsbearbeitung von Benutzertastenanschlägen ermöglicht. Mosh ist ein Ersatz für SSH. Es ist robuster und reaktionsschneller, insbesondere über Wi-Fi, Mobilfunk und Fernverbindungen.
quelle
Dies kann mit der
tmux
Shell geschehen . Wenn die Verbindung getrennt wird, können Sie am schnellsten eine Sitzung wieder herstellen:quelle
tmux
Sitzung ausgeführt wird.attach
alsa
" steht.