PC herunterfahren, ohne SSH-Sitzungen zu beenden

14

Ich habe einige schwere, lange Prozesse auf entfernten Linux-Rechnern. Ich benutze meinen Laptop, um diese Maschine mit SSH zu versorgen und die Prozesse von meiner Couch aus auszuführen.

ABER, wenn ich meinen Laptop herunterfahren möchte, stecke ich in Schwierigkeiten, da die Remote-Prozesse beendet werden.

Ich recherchierte und fand heraus, dass "Bildschirm" eine großartige Lösung für mich ist. (Solange ich meinen Laptop nicht AUSSCHALTEN lasse). Gibt es nicht eine Möglichkeit, die "Bildschirm" -Sitzungen "beizubehalten", damit ich sie beenden und dann erneut an eine Sitzung anhängen kann?

Sathyajith Bhat
quelle
Laufen Sie Bildschirm auf den entfernten Linux-Systemen?
Sam Miller
Ist es möglich, die Prozesse zu hintergründen?
Ennuikiller

Antworten:

32

Es hört sich so an, als würden Sie die Bildschirmsitzung auf Ihrem Laptop ausführen. Dann sshing von dieser Bildschirmsitzung zu den entfernten Hosts. Durch das Herunterfahren des Laptops wird der lokale Bildschirmprozess abgebrochen, wodurch die SSH-Sitzung beendet wird.

Was Sie tun möchten, ist ssh von Ihrem Laptop zu den Remote-Hosts. Starten Sie dann eine Bildschirmsitzung auf dem Remote-Host. Wenn Ihr Laptop ausgeschaltet ist, stirbt die SSH-Sitzung, die Remote-Bildschirmsitzung bleibt jedoch bestehen.

Wenn Sie sich das nächste Mal beim Remote-System anmelden, können Sie mit "screen -r" erneut eine Verbindung zur Bildschirmsitzung herstellen, oder wenn Sie mehrere Bildschirmsitzungen haben "screen -r <pid>".

Hinweis: Wenn Sie vergessen haben, die Verbindung zur Remote-Bildschirmsitzung zu trennen, bevor ssh beendet wurde, wird die Bildschirmsitzung möglicherweise als noch verbunden angesehen. In diesem Fall müssen Sie "screen -dr <pid>" ausführen, um die Sitzung zuerst zu trennen.

Erichui
quelle
4
Übrigens, wenn ich mich richtig erinnere, wird die Bildschirmsitzung Ctrl+Adurch Drücken von gefolgt von, Dwenn Sie sich befinden, getrennt screen.
David Z
@David das ist richtig, Sie können auch einfach Ihr Terminal oder Ihre SSH-Sitzung schließen und der Bildschirm bleibt geöffnet. "screen -raAd" wird wieder hinzugefügt.
Chris
Wie kann ich eine Bildschirmsitzung auf dem Remote-Host starten?
Dummheit
15

Mit können Sie nohupeinen Prozess starten, der nach dem Abmelden von einem Computer weiter ausgeführt werden soll. Vielleicht suchen Sie danach.

John Smith
quelle
Für einen bereits laufenden Prozess können Sie ^ Z ausführen und dann disowndas erstellen, von dem ich glaube, dass es ein äquivalenter Effekt ist. disownist ein Bashismus, der auf anderen Muscheln verfügbar sein kann oder nicht.
Intuited
+1 für nohup. Das Problem dabei ^Zist, dass es den Prozess anhält. Es gibt keine Möglichkeit, einen Prozess im Hintergrund laufen zu lassen, aber ihn ohne Schluckauf laufen zu lassen.
Detly
6

Wenn Sie die Remotesitzung beenden screen, können Sie Ihren Laptop sicher herunterfahren.

chryss
quelle
Ich bin mir nicht sicher, ob es allgemein ersichtlich ist, dass die Bildschirmsitzung, von der getrennt wird, auf dem Remote-Server sein muss.
Intuited
6

Der Punkt des Bildschirms ist es, es auf dem Server auszuführen und mit CTRL+ A+ zu trennen D.

Peter Mortensen
quelle
2

Verwenden Sie Nohup. Eine andere Wahl, um VNC zu verwenden. Erstellen Sie eine VNC-Sitzung auf dem Server. Stellen Sie dann bei jeder Arbeit eine Verbindung her. (Nützlicher, wenn der lange Prozess eine GUI verwendet - zum Beispiel eine IDE)

Jayan
quelle
0

Wenn diese Server über ein ILO / DRAC / Other-Remote-KVM usw. verfügen, können Sie möglicherweise eine Verbindung zur Konsole herstellen und dort interagieren. Da die initiierten Sitzungen im Wesentlichen lokal sind, reicht es nicht aus, die Verbindung von Ihrem Laptop zu trennen.

DHayes
quelle