Необслуживаемые обновления незаконченная перезагрузка предотвращают завершение работы от пользователя

Под управлением Ubuntu 14.04 в общедоступной компьютерной комнате, я включил необслуживаемые обновления и настроил к перезагрузке в 02,00 ночью. ПК являются двойной загрузкой, таким образом, пользователь перезагрузил бы компьютер для начальной загрузки другой ОС, но если бы u-u установил некоторые обновления и установил его на перезагрузку, то пользователи не смогли бы сделать это собой: если они нажимают на значок механизма и затем выбирают завершение работы и Перезагрузку, система просто ничего не делает.

Если я вхожу в систему как корень и пытаюсь дать команду перезагрузки, ответ является "другим завершением работы, уже ожидающим", таким образом, я должен завершить работу-c для отмены его, и после этого я могу перезагрузить. Это, очевидно, не, что я хочу, потому что пользователи должны смочь перезагрузить каждый раз, когда они хотят без моего (или корень) вмешательство.

Кто-либо мог помочь мне в достижении моей цели (=have u-u набор, чтобы установить автоматически, и перезагрузить в 2,00 ночью, позволяя пользователям, свободным к перезагрузке/завершению работы, когда они хотят, не давая им корневые полномочия)?

Большое спасибо,

Andrea

1
задан 23 February 2018 в 13:55

1 ответ

Мешайте Необслуживаемым Обновлениям перезапустить компьютер

Прямо сейчас Необслуживаемые Обновления являются установкой для перезапуска компьютера в 2:00, если обновление требует перезапуска. Этот шаг остановит это поведение.

Шаг: отредактируйте файл /etc/apt/apt.conf.d/50unattended-upgrades

В файле ищут строку:

unattended-Upgrade::Automatic-Reboot "true";

и заставьте его быть похожим:

Unattended-Upgrade::Automatic-Reboot "false";

Создайте сценарий удара, чтобы проверить, требуется ли перезапуск, и сделайте это в случае необходимости

Сценарий ниже проверок, если файл reboot-required существует и если так, это сразу перезагружает компьютер. Давайте назовем этот файл reboot_if_needed.sh.

#!/bin/bash
if [ -f /var/run/reboot-required ]; then
        echo $(date) Sytem restart required by: $(cat /var/run/reboot-required.pkgs)
        /sbin/reboot now
fi

Сохраните этот файл как /opt/bin/reboot_if_needed.sh

Сделайте этот исполняемый файл файла:

sudo chmod +x /opt/bin/reboot_if_needed.sh

Объяснение

Когда сценарий работает и файл var/run/reboot-required существует это произведет некоторый текст, который будет получен в файле журнала /var/log/reboot_history.log. Затем система перезапустит.

Расписание reboot_if_needed.sh каждую ночь в 2:00

Мы хотим запустить скрипт с правами администратора. Таким образом, мы используем sudo. Откройте терминал путем нажатия Ctrl+Alt+T и войдите:

sudo crontab -e

Эта команда откроет crontab файл для пользователя root, если Вы будете существовать, или создайте пустой новый файл. Добавьте следующую строку в конце файла:

0 02 * * * /opt/bin/reboot_if_needed.sh >> /var/log/reboot_history.log

Если Вы используете nano как редактор текстового файла, выйдите из редактора путем нажатия Ctrl+X. Редактор предложит Вам сохранять изменения. Нажмите Y и затем нажмите Enter для выбора имени файла по умолчанию.

Объяснение

Строка, добавленная к crontab сделает сценарий reboot_if_needed.sh выполняемый каждую ночь в 2:00. >> перенаправляет вывод к /var/log/reboot_history.log файл. Этот файл будет создан в первый раз crontab запускает скрипт.

См. https://help.ubuntu.com/community/CronHowto для того, как использовать crontab

Почему это работает?

Необслуживаемое обновление, по-видимому, планирует перезапуск с задержкой. Например:

sudo shutdown -r 02:00

Вышеупомянутая команда планирует перезапуск в 2:00. Когда такая команда в действительности, Вы получаете сообщение "другое завершение работы, уже ожидающее".

Мы используем crontab для заботы о запуске процесса перезапуска в 2:00, вместо того, чтобы планировать его из shutdown команда. Таким образом нет никакого завершения работы, ожидающего, после того как Необслуживаемое Обновление работало. Любой пользователь может перезагрузить компьютер.

Когда любой пользователь перезагружает компьютер файл /var/run/reboot-required если это выходит, удален системой, поскольку перезагрузка больше не требуется. Компьютер не будет перезапущен в 2:00 сценарием.

Надеюсь, это поможет

1
ответ дан 7 December 2019 в 15:23

Другие вопросы по тегам:

Похожие вопросы: