Обычно я обновляю установку Ubuntu через ssh-соединение. Иногда это соединение SSH будет потеряно, или я случайно закрою окно терминала.
Можно ли проверить состояние обновления после повторного входа в систему через ssh?
Следующие журналы связаны с подходящими обновлениями:
/var/log/apt/history.log
/var/log/apt/term.log
/var/log/dpkg.log
Если команда была dist-upgrade
, есть дополнительные журналы в:
/var/log/dist-upgrade
К вашему сведению, обычно безопасно просто перезапустить обновление, и apt продолжит работу с того места, на котором оно остановилось, когда процесс остановился из-за отключения. Тем не мение...
GNU Screen Primer:
Когда вы подключаетесь к удаленному серверу и запускаете длительный процесс на переднем плане, лучше всего использовать GNU Screen. Screen предоставляет виртуальный терминал, который продолжает работать, даже если ваше ssh-соединение потеряно.
Установить экран:
sudo apt-get install screen
Запустить экран:
screen
После запуска экрана вы получите приглашение командной строки, как с обычным терминалом. Затем вы можете запустить обновление из внутреннего экрана:
sudo apt-get upgrade
Чтобы понять, как это работает, «отсоедините» экран, нажав Ctrl + a, d . Это вернет вас к неэкранному терминалу. Вы можете увидеть список запущенных экранов с
screen -list
Если у вас работает только один экран, вы можете подключить его с помощью:
screen -raAd
(Это отсоединяет экран в случае, если он подключен в другом месте, и повторно подключает его к терминалу, который вы в данный момент используете.)
Как правило, вы не можете прокручивать «нормально» изнутри экрана без дополнительной настройки. Чтобы прокрутить экран, нажмите Ctrl-Esc, чтобы войти в режим курсора. Затем вы можете прокрутить вниз и вверх с помощью j и k . Нажмите Esc еще раз, чтобы выйти из режима курсора.
В сети доступно гораздо больше ресурсов для дополнительных функций экрана. Это бесценный стандартный инструмент для системного администрирования.
Смотрите также:
screen -x
- присоединяйся к рабочему экрану, не отрывая других, делая сеанс экрана «многопользовательским».tail -f
опцией command и flag, которая позволит пользователю наблюдать за прогрессом в реальном времени (или видеть, что он потерпел крах) после авторизоваться." Я знаю его старый и принятый, но я думаю, что хвост должен быть добавлен к этому набору инструкций, потому что в отсутствие этой детали, ответ ниже @TheAnonymousBear является более прямым и конкретным. @doublerebelsudo dpkg --configure -a
будет продолжать подходящую модернизацию, когда это все еще тратится.В дополнение к ответу двойного повстанца я заметил сегодня альтернативу.
Я лег спать прошлой ночью после начала обновления по SSH. Я тупо забыл запустить его
screen
и потерял сеанс SSH на ночь.Я как раз собирался начать исследования,
retty
когда заметил, чтоroot
началасьscreen
сессия.Итак, я перечислил
root
экраны и прикрепил к ним:И Бэм! Я вернулся в игру.
источник
do-release-upgrade
командой, определенной для Ubuntu? У меня никогда не было необходимости проверять Debian, который я использую исключительно, потому что я всегда запускаю его вручную, отсоединяюсь и затем возвращаюсь. И, конечно же, мы используемsudo apt dist-upgrade
после изменения/etc/apt/sources.list
вместо.Чтобы увидеть вывод в реальном времени из фонового
apt
задания, используйте:источник
tail
) после того, что они называли «повторным входом в систему».У меня точно такая же проблема, я потерял соединение и процесс dpkg ждал ввода.
Может быть, в следующий раз попробуйте:
sudo dpkg --configure -a
источник
"dpkg: error: dpkg frontend is locked by another process"
/var/dpkg/lock
если он все еще работает. И, тем не менее, он не отвечает на вопрос о том, как «проверить состояние обновления», а вместо этого будет работать только в случае сбоя обновления (и только тогда, когда блокировка не активна). Я бы никому не рекомендовал такой подход. С уважением, oemb1905