Frage SSH-Verbindung beim Serverupgrade verloren - Wie wird die Verbindung zum Prozess wiederhergestellt?


Also führte ich ein Ubuntu Server Upgrade von 11.04 bis 11.10 durch.

Ich habe es im Hintergrund vergessen, und mein SSH-Client ist abgelaufen und getrennt (Kitt auf Windows, geh Figur). Die letzte Sache an meinem Terminal war eine Frage über das Führen einer alten Konfiguration, usw.

Als ich mich wieder beim Server anmeldete, wurden aptitude-Dateien von einem anderen Prozess gesperrt, daher nehme ich an, dass dieser Upgrade-Prozess dort auf meine Eingabe wartet.

Wie kann ich mit diesem Prozess interagieren und das Upgrade fortsetzen? Wenn möglich.

Vielen Dank


27
2017-10-14 15:47


Ursprung


mögliches Duplikat von Verbinden Sie die SSH-Sitzung erneut, wenn die Verbindung ohne Bildschirm getrennt wurde - quanta


Antworten:


Der Prozess wird tatsächlich in einer Bildschirm- oder Byobu-Sitzung als root-Benutzer ausgeführt. wieder verbinden mit dem Server mit Putty auf Port 22 oder die Failsafe-1022. Sudo su - oder su - in Ihrem root-Konto und den Bildschirm mit byobu oder einem Bildschirm-r und setzen Sie fort, wo Sie gegangen sind.

ach ja, ich habe es auf die harte Tour herausgefunden ;-)


31
2018-05-13 10:05



Woah danke! Ich habe tatsächlich ein Release-Upgrade von 11.10 auf 12.04 in byobu ausgeführt und dann geschlossen, als byobu aktualisiert wurde, aber ich konnte mich wieder mit der root-Bildschirm-Sitzung verbinden und das Upgrade-Ende sehen! Ich habe fast versucht, das Upgrade gewaltsam zu beenden, aber zum Glück habe ich diese Antwort rechtzeitig gelesen. - Ibrahim
Bei einer angehaltenen Installation hieß es, der Bildschirm sei bereits angeschlossen, also zwinge ich den Bildschirm abzunehmen, den ich wieder anbringen könnte. Der Befehl ist Bildschirm -D Information von hier: kb.iu.edu/data/ahrm.html - David
Verwenden screen -r <id> funktioniert auch, und Sie müssen nur ein paar Zeichen der ID eingeben, damit es funktioniert. - Daniel
Das funktioniert nicht für mich, wie es das sagt screen es ist nicht installiert. - starbeamrainbowlabs
Neuere Ubuntu-Verwendung sudo screen -D -r nach dem sudo su - (wenn nicht root). - bshea


Du kannst nicht. Finden Sie den Upgrade-Prozess, indem Sie tun

lsof /var/lib/dpkg/lock

Töte es, repariere irgendwelche unterbrochenen Upgrades mit

dpkg --configure --pending

und starten Sie das Upgrade neu.


26
2017-10-14 15:54



Ist dies sicher mit dem Prozess ein do-release-upgrade? - Stephen Melrose
@ StephenMelrose Es ist nie sicher. Aber es ist vernünftig sicher und die einzige verbleibende Option. - Teddy
beste Antwort zwischen vielen auf, wie man eine apt-get-upgrade von Putty Session Timeout abgebrochen ... erfolgreich getestet, danke! - Kojo
Das and restart the upgrade Schritt funktioniert nicht in meinem Fall (ich verlor SSH Sitzung während do-release-upgrade 14.04 -> 16.04). Was ich als letzten Schritt mache, um das Release-Upgrade abzuschließen, ist sudo apt autoremove und dann sudo shutdown -r now. - djxak
Ich habe hier eine vollständigere Antwort gefunden, die ich nach dem Upgrade automatisch fortgesetzt habe, wo es aufgehört hat. askubuntu.com/questions/219545/... - lacostenycoder


Kryopid (gefunden über diese Frage) könnte helfen, es sei denn, der aktuelle "ein Prozess, kein Baum von Prozessen" ist in diesem Fall ein Problem.

Die Dateien können gesperrt werden, weil der Prozess kurzerhand abgebrochen wurde und keine Chance hatte, nach sich selbst aufzuräumen, also bestätige, dass aptitude tatsächlich noch läuft. Benutzen lsof /var/lib/dpkg/lock wie in Teddys Antwort vorgeschlagen, um zu überprüfen - das wird Ihnen das Pid sagen, um auch Cryopid zu versuchen.

In Zukunft empfehle ich, den Bildschirm so oft wie möglich zu durchlaufen. Ich habe eine Angewohnheit von Bildschirm (oder byobu, das ist ein Wrapper um Bildschirm, der einige nützliche Verhaltensweisen definiert) die erste Sache, die ich ausgeführt, wenn SSHing gemacht irgendwo dann kann ich die Verbindung wiederherstellen, wenn Probleme auftreten. Sie können es so einrichten, dass es automatisch startet oder sich neu anbringt, obwohl ich nie dazu gekommen bin, das zu tun - es gibt eine Reihe von Beispielen online (dieses zum Beispiel) Wenn du das probieren willst.


4
2017-10-14 15:59



Übrigens habe ich das vorweggenommen und ein do-release-upgrade über ssh durchgeführt, indem ich byobu benutzt habe, aber wenn byobu upgraded war, hat es meine Sitzung beendet! Ich frage mich, ob die direkte Verwendung des Bildschirms dies verhindert hätte. Aber die andere Antwort auf diese Frage beantwortete meine Situation, scheint so, als ob der Installer schlau ist und trotzdem seine eigene Bildschirmsitzung ausführt: D - Ibrahim