Подтвердить что ты не робот

Bash - как определить, требует ли apt-get перезагрузки

Я пишу bash script (для OS на основе apt-get), который автоматизирует процесс установки различных программ. В этом процессе я иногда запускаю apt-get -fy update и apt-get -fy upgrade. В процессе обновления иногда требуется перезагрузка.

Мой вопрос: есть ли способ проверить, запрашивает ли система перезапуск после запуска apt-get -fy upgrade? Я пытаюсь написать script, чтобы он работал от начала до конца без вмешательства человека.

Спасибо.

4b9b3361

Ответ 1

Используйте требуемый файл /var/run/reboot, который делает именно то, что вы хотите. Итак, у нас будет следующее:

apt-get update && apt-get -fy upgrade && [ -f /var/run/reboot-required ] && shutdown -r now 

Ответ 2

Я не помню, действительно ли apt-get дает вам предсказуемое форматированное сообщение, информирующее вас о необходимости перезагрузки, но если это так, вы можете просто проверить вывод, например. что-то вроде apt-get -fy update | grep -q 'fill in restart message pattern' && reboot.

Другой, менее надежной альтернативой является использование checkrestart из пакета debian-goodies.

Ответ 3

Если вы выполните

apt-get -fy update && shutdown -r now

он будет соблюдать заказ и будет обновляться до завершения и, наконец, перезагрузить сервер.