Как мне присоединиться к процессу Ubuntu Server 'do-release-upgrade'?

79

Я случайно нажал Ctrl + C во время do-release-upgradeпроцесса на Ubuntu Server . Я упал в оболочку, чтобы сравнить файл .conf в / etc /. Когда я нажал Ctrl-C, он спросил, хочу ли я попытаться присоединиться к процессу обновления, но это не удалось.

Итак, я ушел, и теперь есть зависший процесс dpkg, который удерживает блокировку apt. Это виртуализированный сервер без интерфейса с графическим интерфейсом ...

Возможно ли восстановить процесс обновления, или мне нужно убить процесс dpkg и начать заново?

Алекс Лич
источник
2
Экран-список все еще перечисляет процесс обновления? Если это так, screen -r может подключить его снова. Какова была точная ошибка при попытке присоединить?
arjarj
Я позже попробовал screen -RD, но это не сработало. Не было запущено ни одного демона экрана, так что нечего было повторно подключаться. Точная ошибка? У меня был выбор «r» или «q», я думаю (переподключиться или выйти) внизу проклятого приложения. Извините, я не могу быть более полезным, чем это. Я использовал VirtualBox, и без запуска tmux или экранной сессии у меня не было прокрутки, а интерфейс, похожий на curses, продолжал очищать экран. Переподключение не сработало, поэтому я просто ушел.
Алекс Лич
1
Я должен добавить, что я пытался screen -R -Dи как пользователь sudo, и как мой обычный пользователь ..
Алекс Лич
возможный дубликат обновления Ubuntu Server через зависание SSH
Майкл Хэмптон
2
Да! dpkg configure -aэто правильный ответ. Это случилось со мной, и действительно плохо, что bind9 был неправильно настроен (т.е. Ctrl-C, должно быть, остановил этот процесс, и он больше не мог запускаться!) После того, как я исправил bind9, затем apt-get update + upgrade + dist -обновление запускалось как чудо, и после этого я перезагрузился, и все заработало.
Алексис Уилк

Ответы:

113

Я обычно выпускаю обновления через VPN, поэтому я пробовал это несколько раз. Всякий раз, когда он обновляет мой пакет openvpn, я теряю соединение, поэтому я снова подключаюсь.

do-release-upgradeначинает сеанс резервного копирования SSH на порту 1022 и сеанс резервного копирования экрана. Если у вас не установлен экран, он НЕ будет доступен.

Вы можете получить сеанс экрана, запустив:

sudo screen -list
There is a screen on:
    2953.ubuntu-release-upgrade-screen-window   (09/13/2012 04:48:02 AM)    (Detached)
1 Socket in /var/run/screen/S-root.

Затем присоедините:

sudo screen -d -r root/2953.ubuntu-release-upgrade-screen-window

Использование ранее указанного экрана после root/

Вы должны вернуться туда, где вы потеряли связь.

Алекс Р
источник
1
У меня не установлен экран ... и я не могу установить его с помощью apt-get (файл заблокирован)
inemanja
Это очень полезно. Возможно, будет даже лучше, если вы просто добавите краткое упоминание о том, что do-release-upgradeдействительно автоматически запускается сеанс экрана (вы попросили меня перечитать вопрос на секунду, чтобы найти упоминание о начале процесса обновления через screen)
polynomial_donut
1
Я поражен, что этот вопрос продолжает получать +1, он так стар
Алекс Р
@AlexR Это все еще актуально и только что спасло меня сегодня! Магия стека * сайтов!
Луис Лобо Боробия
29

У меня была такая же проблема при обновлении до количественного. К сожалению для меня, как и оригинальный постер, экран был убит также из-за Ctrl + C.

Убить dpkg и перезапустить его с "--configure -a" решило проблему.

Спасибо

Арул Сельван
источник
Спасибо Спасибо спасибо. Это сработало для меня.
firebush
2

Я сам больше человек из CentOS / RHEL, но по моему опыту вы всегда лучше убиваете и начинаете процесс заново. Загрузка, синхронизация и т. Д. Уже должны быть завершены и не должны быть переделаны. Поскольку это то, что занимает большую часть времени, на этом пути не должно быть много потерь.

Тим Бригам
источник
Да, я думаю, что больше ничего не поделаешь. Возможно, я мог бы использовать reptyr для подключения к pty / tty (я никогда не знаю разницы), но легче начать с нуля. И ты прав; это намного быстрее во второй раз!
Алекс Лич