Also habe ich ein Ubuntu Server Upgrade von 11.04 auf 11.10 durchgeführt.
Ich habe es im Hintergrund vergessen und mein SSH-Client hat die Zeit überschritten und die Verbindung getrennt (Putty unter Windows, go figure). Das Letzte an meinem Terminal war die Frage, ob ich eine alte Konfiguration behalten soll.
Als ich mich wieder beim Server anmeldete, wurden Aptitude-Dateien von einem anderen Prozess gesperrt. Ich gehe daher davon aus, dass dieser Upgrade-Prozess auf meine Eingabe wartet.
Wie kann ich mit diesem Prozess interagieren und das Upgrade fortsetzen? Wenn möglich.
Vielen Dank
Antworten:
Der Prozess wird tatsächlich in einer Bildschirm- oder Byobu-Sitzung als Root-Benutzer ausgeführt. Verbinden Sie sich erneut mit dem Server mit Putty auf Port 22 oder dem fehlersicheren 1022. sudo su - oder su - in Ihrem Root-Konto und setzen Sie den Bildschirm mit byobu oder einem screen -r fort und setzen Sie ihn dort fort, wo Sie ihn verlassen haben.
oh und ja, ich habe es auf die harte Tour herausgefunden ;-)
quelle
screen -r <id>
funktioniert auch, und Sie müssen nur ein paar Zeichen der ID eingeben, damit es funktioniert.screen
das nicht installiert ist.sudo screen -D -r
nachsudo su -
(wenn nicht root).Das kannst du nicht. Finden Sie den Upgrade-Prozess, indem Sie
Töte es, repariere alle unterbrochenen Upgrades mit
und starten Sie das Upgrade neu.
quelle
do-release-upgrade
?and restart the upgrade
Schritt funktioniert in meinem Fall nicht (ich habe die SSH-Sitzung vomdo-release-upgrade
14.04 -> 16.04 verloren). Was ich stattdessen als letzten Schritt tue, um das Release-Upgrade abzuschließen, istsudo apt autoremove
und dannsudo shutdown -r now
.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.
Möglicherweise sind die Dateien gesperrt, weil der Prozess kurzerhand abgebrochen wurde und keine Gelegenheit hatte, nach der eigentlichen Bereinigung aufzuräumen. Vergewissern Sie sich daher, dass Aptitude tatsächlich noch ausgeführt wird. Verwenden Sie es
lsof /var/lib/dpkg/lock
wie in Teddys Antwort vorgeschlagen, um zu überprüfen - dies gibt Ihnen die PID an, mit der Sie auch Cryopid ausprobieren können.In Zukunft empfehle ich, wann immer möglich durch den Bildschirm zu laufen. Ich habe es mir zur Gewohnheit gemacht, dass der Bildschirm (oder Byobu, ein Wrapper um den Bildschirm, der einige nützliche Verhaltensweisen definiert) als erstes ausgeführt wird, wenn ich SSH zu irgendwo hin verwende. Dann kann ich die Verbindung wiederherstellen, wenn es Probleme gibt. Sie können es so einstellen, dass es automatisch gestartet oder neu verbunden wird, obwohl ich das nie irgendwo gemacht habe - es gibt eine Reihe von Beispielen online ( dieses zum Beispiel ), wenn Sie das ausprobieren möchten.
quelle