Ich bin über SSH mit einem Server verbunden und möchte einen Prozess ausführen, der lange dauern wird. Ich verbinde mich mit dem Server über SSH im Terminal meines Laptops, möchte aber meinen Laptop ausschalten können, aber trotzdem den Fortschritt auf dem Server laufen lassen. Da es sich um zwei separate Computer handelt, sollte ich das eigentlich tun können, aber ich bin nicht sicher, ob das über SSH möglich ist.
Antwort1
Das geht ganz einfach: Fügen Sie &
nach Ihrem Befehl ein ein, beispielsweise
bash script.sh &
Die Ausführung wird fortgesetzt, auch wenn Sie die Sitzung beenden oder das Terminal schließen.
Eine andere Möglichkeit besteht darin, nohup
den Befehl zu verwenden und Ihren Befehl auszuführen. Beispiel:
nohup bash script.sh
Finden Sie mehr mit man nohup
und folgen SieDasFrage, die in eine ähnliche Richtung geht.
Antwort2
Hintergrundjobs
Zur Ausführung im Hintergrund
program &
Wird im Hintergrund ausgeführt und nach dem Trennen der Verbindung fortgesetzt. Leitet auch stdout
zu weiter ~/nohup.out
.
nohup program &
Dasselbe, aber Umleitung zu einer anderen Datei
nohup program > "another file" &
Hinweis zu den obigen Befehlen: Mit dem Befehl können Sie die Hintergrundjobs anzeigen jobs
.
Dasselbe, aber aus der Jobliste entfernen
nohup program > "another file" & disown
Dauerhafte Sitzungen
Siehe gnu screen
, tmux
, und vnc
. Sie ermöglichen es Ihnen, eine Sitzung offen zu halten, während die Verbindung getrennt ist.
Gnuscreen
#create a screen session (do this once)
screen -d -m
#attach to the session
screen -x
Sie können auch mehr als eine (benannte Sitzung) haben
#create a screen session (do this once)
screen -d -m -S a_name
#attach to the session
screen -x -S a_name
Beachten Sie, dass Strg_a verwendet wird, um den Bildschirm zu steuern, wenn Sie sich darin befinden. Strg_a Strg_a, um Strg_a an die Shell zu übergeben.
VNC
#create a vnc session (do this once)
vncserver -from 127.1.0.1 -geometry 1920x1000 :10
#attach to the session (from a remote machine)
ssvnc Vnc+ssh://«user»@«machine-name»:10
Ändern Sie die Geometrie, um Ihre Anzeige zu reparieren. Ändern Sie möglicherweise die Anzeigenummer.
Anmerkungen:
Jeder auf dem lokalen Computer kann eine Verbindung zur VNC-Sitzung herstellen.
Sie können -SecurityTypes None
die VNC-Sicherheit deaktivieren, wenn Sie über ausreichend Sicherheit verfügen ssh
.
127.1.0.1
liegt im Loopback-Bereich. Nur Prozesse auf dem lokalen Rechner können eine Verbindung herstellen. Sie können eine Remote-Verbindung über ssh
(ssvnc) herstellen. Sie können nftables
einschränken, mit welchen Benutzern eine Verbindung hergestellt werden kann 127.1.0.1
. Es gibt viele Adressen im Loopback-Bereich 127.0.0.1
( 127.255.255.254
ca. 16 Millionen), sodass Sie jedem Benutzer eine zuweisen können und immer noch Reserve haben.