Ответ 1
Используйте требуемый файл /var/run/reboot, который делает именно то, что вы хотите. Итак, у нас будет следующее:
apt-get update && apt-get -fy upgrade && [ -f /var/run/reboot-required ] && shutdown -r now
Я пишу bash script (для OS на основе apt-get), который автоматизирует процесс установки различных программ. В этом процессе я иногда запускаю apt-get -fy update и apt-get -fy upgrade. В процессе обновления иногда требуется перезагрузка.
Мой вопрос: есть ли способ проверить, запрашивает ли система перезапуск после запуска apt-get -fy upgrade? Я пытаюсь написать script, чтобы он работал от начала до конца без вмешательства человека.
Спасибо.
Используйте требуемый файл /var/run/reboot, который делает именно то, что вы хотите. Итак, у нас будет следующее:
apt-get update && apt-get -fy upgrade && [ -f /var/run/reboot-required ] && shutdown -r now
Я не помню, действительно ли apt-get
дает вам предсказуемое форматированное сообщение, информирующее вас о необходимости перезагрузки, но если это так, вы можете просто проверить вывод, например. что-то вроде apt-get -fy update | grep -q 'fill in restart message pattern' && reboot
.
Другой, менее надежной альтернативой является использование checkrestart
из пакета debian-goodies
.
Если вы выполните
apt-get -fy update && shutdown -r now
он будет соблюдать заказ и будет обновляться до завершения и, наконец, перезагрузить сервер.