Wenn mvgestartet wurde als:
ssh host mv x y
Dann mvwird eine SIGPIPE (und die) erhalten , wenn sie versucht , etwas zu stdout oder stderr zu schreiben (wie eine Fehlermeldung).
Wenn Sie eine interaktive Sitzung gestartet haben wie:
ssh host
Und mvvon der interaktiven Shell dort gestartet , wenn die Masterseite des Pseudo-Terminals, von dem aus gestartet wurde sshd, geschlossen wird (beim sshSchließen der TCP-Verbindung beim Beenden), der Leiter der Sitzung, der der Slave-Seite des Pseudo-Terminals zugeordnet ist ist die interaktive Remote-Shell, die ein SIGHUP-Signal empfängt (auflegen).
Nach dem Empfang dieses Signals trap '' HUPleiten Shells (sofern Sie kein a ausgegeben haben ) dieses Signal normalerweise an alle Prozesse in den Jobs weiter, die sie gestartet haben, es sei denn, Sie haben ausdrücklich angegeben, dass dies nicht der Fall ist (wie bei disownoder mit &|in einigen Shells).
Andere Prozesse (wie mv) sterben normalerweise ab, wenn sie dieses Signal empfangen, es sei denn, sie wurden angewiesen, es zu ignorieren (indem sie es verwenden nohupoder wenn ihre Eltern es ignoriert haben).
Wenn Sie Folgendes ausgegeben haben:
trap '' HUP
Dann werden alle Jobs gestartet, nachdem sie es geerbt haben und SIGHUP ignorieren.
Die Shell stirbt nicht an dem SIGHUP-Signal, das beim Trennen gesendet wird, sondern wird bei der nächsten Eingabeaufforderung beendet, da der Standard weg ist. Beim Beenden senden einige Shells SIGHUP an ihre (nicht abgelehnten) Jobs. Diejenigen, die nach dem beginnen, trap '' HUPwerden es ignorieren, die anderen werden sterben.
Kurz gesagt, in diesem Fall mvstirbt Ihr Wille , es sei denn, Sie haben zuvor Vorsichtsmaßnahmen getroffen, damit dies nicht geschieht .
Um es beim nächsten Mal zu vermeiden, bei Verwendung tcsh, zshoder bash, bevor Sie das Gerät herunterzufahren, drücken Sie Ctrl-Zzu suspendieren mv, geben Sie bges im Hintergrund fortzusetzen und enteignen es.disown
Oder Sie könnten screenoder verwenden tmux. Bei einem SIGHUP werden diese nur von ihrem jetzt verschwundenen Host-Terminal getrennt, aber die Anwendungen, die auf dem emulierten Terminal ausgeführt werden, werden weiterhin kopflos ausgeführt, und Sie können die Sitzung später erneut an ein anderes Terminal anschließen, um zu sehen, wie es gelaufen ist mv.
Oder verwenden Sie nohup mv, um mvgegen SIGHUP immun zu werden und die Ausgabe und Fehler in eine nohup.outDatei zu verschieben, die Sie später überprüfen können.
Jetzt weiß ich nichts über Ihren spezifischen Hosting-Anbieter, aber bei einigen, wenn Sie sich sshin der Instanz befinden, starten Sie dort keine Shell-Sitzungen, sondern verbinden sich mit der Konsole, dh mit einer Sitzung, die bereits gestartet wurde und wenn Sie beenden, beenden Sie diese Sitzung nicht, sondern trennen Sie sie einfach von ihr. Die Shell wird also weder getötet noch getötet mv. Wenn dies der Fall ist, werden Sie feststellen, dass Sie psvon dort aus pidin zwei getrennten sshSitzungen dasselbe für Ihre Shell erhalten .