Ich muss SSH-Befehle remote ausführen, wobei die Ausgabe lokal angezeigt wird. Aber wenn die Verbindung unterbrochen wird, soll der Befehl weiterhin ausgeführt werden.
Ich spreche nicht so viel über das Einloggen und Ausführen, sondern mache ssh user @ remotehost 'commands && command etc'
Wie kann ich sicherstellen, dass der Befehl auch dann ausgeführt wird, wenn die Verbindung unterbrochen wird?
quelle
Suchen Sie nach einer dauerhaften Sitzung, die Sie fortsetzen können, oder möchten Sie nur verhindern, dass eine Unterbrechung die Exektion tötet?
Verwenden Sie
screen
für die ersteren, für die letzterennohup
,.quelle
Wie bereits erwähnt,
screen
kann das den ganzen Trick machen. Aber nicht nur was Sie brauchen. Ich benutze den Bildschirm seit Jahren und benutze ihn jetzt jedes Mal, wenn ich mich bei Systemen anmelde. Versuchen Siescreen
,~/.screenrc
mit einer solchen Konfiguration zu installieren und zu erstellen :Dann lauf
screen -Rd vcf
. Dies ist der bevorzugte Aufruf von screen. Sie stellen die Verbindung zu einer zuvor erstellten Sitzung mit dem Namen vcf * wieder her (oder werden gewarnt, wenn sie nicht eindeutig ist). Wenn die Sitzung noch nicht geöffnet ist, wird sie erstellt. CTRL+ Aist ein Metaschlüssel, der alles kann.CTRL+A C
( CTRL+ A, dann C) neues Fenster (Bildschirm) innerhalb der Sitzung erstellen.CTRL+A SPACE
Bewegen Sie den Fokus zum nächsten Fenster in einer Runde.CTRL+A D
Trennen Sie die aktuelle Sitzung, damit alle Fenster zwischen den Verbindungen funktionsfähig bleiben. Wenn Sie eine lange Aufgabe gestartet haben, können Sie die Verbindung zum Bildschirm trennen und später erneut herstellen, um zu sehen, was passiert. Das gleiche passiert, wenn Ihre SSH-Sitzung verloren geht - der Bildschirm bleibt mit allen geöffneten Fenstern und allen gestarteten Aufgaben am Leben.Wenn Sie ein Fenster innerhalb des Bildschirms schließen möchten - einfach
exit
von der Shell aus. Wenn Sie alle Shells / Tasks in allen Fenstern schließen und den Bildschirm beenden möchten, drücken Sie einfachCTRL+A CTRL+\
und drücken Sie "Y", wenn Sie dazu aufgefordert werden.Für den Rest siehe man screen.
quelle
Ich habe diese Alternative zu einer zuverlässigen ssh "like" -Verbindung gesehen:
http://mosh.mit.edu/
quelle
Ich würde normalerweise tun:
quelle