Ответы:
Следующие журналы связаны с подходящими обновлениями:
/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 является более прямым и конкретным. @doublerebel
sudo dpkg --configure -a
будет продолжать подходящую модернизацию, когда это все еще тратится.
В дополнение к ответу двойного повстанца я заметил сегодня альтернативу.
Я лег спать прошлой ночью после начала обновления по SSH. Я тупо забыл запустить его screen
и потерял сеанс SSH на ночь.
Я как раз собирался начать исследования, retty
когда заметил, что root
началась screen
сессия.
me@GAMMA:~$ ps aux | grep -E 'release|upgrade|apt'
root 6208 0.0 0.0 29140 1628 ? Ss 01:57 0:05 SCREEN -e \0\0 -L -c screenrc -S ubuntu-release-upgrade-screen-window /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6209 0.2 5.6 287428 93144 pts/2 Ss+ 01:57 3:13 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
root 6239 0.0 0.0 50052 1184 ? Ss 01:58 0:00 /usr/sbin/sshd -o PidFile=/var/run/release-upgrader-sshd.pid -p 1022
root 7306 0.0 4.6 287432 77284 pts/2 S+ 02:43 0:08 /usr/bin/python /tmp/ubuntu-release-upgrader-1h6_g4/raring --mode=server --frontend=DistUpgradeViewText
me 26829 0.0 0.0 9440 956 pts/5 S+ 22:18 0:00 grep --color=auto -E release|upgrade|apt
Итак, я перечислил root
экраны и прикрепил к ним:
me@GAMMA:~$ sudo screen -list
There is a screen on:
6208.ubuntu-release-upgrade-screen-window (12/11/2013 01:57:58 AM) (Detached)
1 Socket in /var/run/screen/S-root.
me@GAMMA:~$ sudo screen -x -r
И Бэм! Я вернулся в игру.
do-release-upgrade
командой, определенной для Ubuntu? У меня никогда не было необходимости проверять Debian, который я использую исключительно, потому что я всегда запускаю его вручную, отсоединяюсь и затем возвращаюсь. И, конечно же, мы используем sudo apt dist-upgrade
после изменения /etc/apt/sources.list
вместо.
Чтобы увидеть вывод в реальном времени из фонового apt
задания, используйте:
sudo tail -f /var/log/apt/term.log
tail
) после того, что они называли «повторным входом в систему».
У меня точно такая же проблема, я потерял соединение и процесс dpkg ждал ввода.
Может быть, в следующий раз попробуйте: sudo dpkg --configure -a
"dpkg: error: dpkg frontend is locked by another process"
/var/dpkg/lock
если он все еще работает. И, тем не менее, он не отвечает на вопрос о том, как «проверить состояние обновления», а вместо этого будет работать только в случае сбоя обновления (и только тогда, когда блокировка не активна). Я бы никому не рекомендовал такой подход. С уважением, oemb1905