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

Поскольку вы добавили разрешения на выполнение (для каждой группы пользователей) в файл helloworld.sh, вы должны выполнить ./helloworld.sh или bash helloworld.sh для выполнения файла bash:

   sudo chmod a+x hello_world.sh # Adding excution permissions
  ./helloworld.sh           # option 1
   bash helloworld.sh       # option 2

Однако , если вы не сделали chmod a+x hello_world.sh, вы все равно можете выполнить файл bash, набрав bash helloworld.sh:

   bash helloworld.sh       # Without adding excution permissions
                            # to any user group
1
задан 23 February 2018 в 14:55

10 ответов

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Пояснение

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

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

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи.

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

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

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

1
ответ дан 22 May 2018 в 12:56
  • 1
    Спасибо, ваш первый комментарий просто привел меня к идее сценария cron, и, кроме того, ваше подробное объяснение отличное. Я попробую и расскажу о результатах. Спасибо! – Angus73 23 February 2018 в 21:40
  • 2
    Добро пожаловать. Заметьте, что я не пробовал. Таким образом, в деталях могут быть некоторые ошибки. Если у вас есть проблема, дайте мне знать в комментариях. Я исправлю свой ответ, чтобы он помогал другим. – user68186 23 February 2018 в 21:50
  • 3
    Я могу подтвердить, что он работает отлично, как ожидалось. Еще раз спасибо! – Angus73 9 March 2018 в 17:20
  • 4
    Я добавил регистрацию каждого автоматического перезапуска. Файл журнала будет содержать список обновленных пакетов, которые необходимо перезапустить. – user68186 15 March 2018 в 18:09

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Пояснение

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

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

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи.

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

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

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

1
ответ дан 17 July 2018 в 20:10

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Пояснение

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

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

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи.

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

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

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

1
ответ дан 23 July 2018 в 20:54

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 31 July 2018 в 19:16

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 2 August 2018 в 12:17

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 3 August 2018 в 16:42

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 5 August 2018 в 02:02

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 6 August 2018 в 18:40

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 8 August 2018 в 23:00

Остановить автоматическую перезагрузку после перезагрузки компьютера

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

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

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

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

и сделайте так:

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

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

Скрипт ниже проверяет, существует ли файл 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, если он существует, или создайте пустой новый файл. Добавьте следующую строку в конец файла:

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

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

Объяснение

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

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

g20]

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

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

sudo shutdown -r 02:00

Приведенная выше команда планирует перезапуск в 2 часа ночи. Когда такая команда действует, вы получаете сообщение «еще одно отключение, ожидающее завершения».

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

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

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

1
ответ дан 14 August 2018 в 12:57
  • 1
    Спасибо, ваш первый комментарий просто привел меня к идее сценария cron, и, кроме того, ваше подробное объяснение отличное. Я попробую и расскажу о результатах. Спасибо! – Angus73 23 February 2018 в 21:40
  • 2
    Добро пожаловать. Заметьте, что я не пробовал. Таким образом, в деталях могут быть некоторые ошибки. Если у вас есть проблема, дайте мне знать в комментариях. Я исправлю свой ответ, чтобы он помогал другим. – user68186 23 February 2018 в 21:50
  • 3
    Я могу подтвердить, что он работает отлично, как ожидалось. Еще раз спасибо! – Angus73 9 March 2018 в 17:20
  • 4
    Я добавил регистрацию каждого автоматического перезапуска. Файл журнала будет содержать список обновленных пакетов, которые необходимо перезапустить. – user68186 15 March 2018 в 18:09
  • 5

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

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