Как я могу запланировать ночную перезагрузку?

У меня периодически возникают проблемы с запуском определенного приложения, XBMC. Если я регулярно использую XBMC, у меня, похоже, не возникает никаких проблем, но если я оставляю его без присмотра более чем на 12 часов, мне нужно перезагрузить компьютер, чтобы он снова заработал.

Я знаю, что запланированная перезагрузка - это НЕ ответ, но пока я не могу выяснить проблему, мне нужно планировать перезагрузку каждое утро, чтобы моя жена могла использовать ее, если меня нет, и ее не выбросили из окна:)

Любой берущий?

6 ответов

Решение

Я бы использовал cron (должен быть уже установлен):

Редактировать crontab:

sudo crontab -e

В первый раз вам, возможно, придется выбрать предпочитаемый редактор (например, nano)

Вставьте строку как

0 4   *   *   *    /sbin/shutdown -r +5

внизу. Объяснение:

m      h    dom        mon   dow       command
minute hour dayOfMonth Month dayOfWeek commandToRun

поэтому линия

  0 4   *   *   *    /sbin/shutdown -r +5

будет перезагружать вашу систему каждый день в 4:05 утра. (4 часа утра + 5 минут)

Ctrl+X, Y, Enter должны вывести вас из crontab (если вы используете nano)

Примечание: вам, возможно, придется бежать crontab -e как root, потому что для выключения нужен root.

Добавление этого к /etc/cron.daily/zz-reboot должно сработать:

#!/bin/sh
shutdown -r now

А также sudo chmod a+x /etc/cron.daily/zz-reboot, Префикс "zz" заставит его запускаться последним из всех других сценариев в этом каталоге. Проверьте /etc/crontab чтобы увидеть, в какое время суток это действительно произойдет:

grep daily /etc/crontab | awk '{print $2 ":" $1}'

Если это не сработает, то "обычная" запись cron тоже может работать, через sudo crontab -e

MINUTE HOUR * * * shutdown -r now

И, наконец, если вы хотите просто выполнить одноразовые перезагрузки, вы можете использовать at:

echo "shutdown -r now" | sudo at 04:30

Это старый вопрос, но он появляется в результатах поиска и не содержит никакой информации о systemd, поэтому я добавлю пример того, как выполнять запланированные перезагрузки с помощью systemd. Имена файлов и описания модулей в примере выбраны произвольно и могут быть изменены.

  1. Добавьте сервисный модуль, который перезагружает систему. Для этого создайте новый файл в/etc/systemd/system/sched-reboot.serviceи добавьте в него необходимую конфигурацию. Следующая конфигурация службы будет запускать принудительную перезагрузку через systemctl при каждом запуске.

             [Unit]
     Description=Scheduled Reboot
    
     [Service]
     Type=oneshot
     ExecStart=/usr/bin/systemctl --force reboot
    
  2. Добавьте таймер, который будет запускать службу перезагрузки по расписанию. Создайте новый файл в/etc/systemd/system/sched-reboot.timer. Следующая конфигурация для таймера будет запускать службу перезагрузки ежедневно в 4 часа утра.

             [Unit]
     Description=Reboot Scheduling
    
     [Timer]
     OnCalendar=*-*-* 4:00:00
    
     [Install]
     WantedBy=multi-user.target
    
  3. (Необязательно) Выполнитьsystemd-analyze verify /etc/systemd/system/sched-reboot.*проверить наличие ошибок в конфигурационных файлах. Если возврат пуст, файлы в порядке.

  4. Включите и запустите таймер, запустивsudo systemctl enable sched-reboot.timerиsudo systemctl start sched-reboot.timer.

  5. (Необязательно) Выполнитьsystemctl list-timersчтобы увидеть все активные таймеры, а также информацию об их следующем и последнем запуске.

Для получения дополнительной информации о таймерах и синтаксисе для настройки событий календаря (как вOnCalendarв примере) взгляните на раздел ArchWiki о таймерах

Я работаю с cronjobs около месяца на своей работе, планирую отключение питания и перезагрузку. Это очень просто Я знаю, что об этом спрашивали около 5 лет назад, но если у кого-то все еще есть проблемы, вы можете использовать этот метод, и вы будете настроены.

открыть терминал (Ctrl+T)

sudo nano /etc/crontab

прокрутите весь путь до конца и введите команду ниже

00 6 * * * root reboot 

Это установлено для перезагрузки в 6 утра каждый день, и нажмите Enter

Если вы хотите запланировать отключение питания на 11 вечера каждый день, вы можете ввести

00 23 * * * root poweroff

Мне все еще нужно выяснить, как привести в действие машину, используя cronjob, когда она выключена. Я отредактирую этот ответ, как только выясню.

PS это моя первая публикация ответов на любые формы; надеюсь, это поможет кому-то!!:D

Рассмотреть возможность

      0 6 * * * sudo shutdown -r     

Это будет перезагрузка в 6 утра каждый день. Мне это нравится, потому что это позволяет задержать 1 минуту, чтобы закрыть любые другие фоновые задания, и предупреждает всех остальных, что ожидается завершение работы.

Вы должны создать сценарий, используя указания, данные Kees Cook...

Вы можете просто скопировать и вставить информацию ниже в любом текстовом редакторе и создать zz-reboot предложенный файл в каталоге.

После этого просто не забудьте щелкнуть правой кнопкой мыши по файлу и назначить ему разрешение на выполнение. Если вы хотите использовать терминал просто:

sudo chmod +x /etc/cron.daily/zz-reboot

Чтобы лучше понять, что вы делаете, помните, что в /etc Папка, которую вы обычно находите файлы конфигурации и там вы можете найти cron.hourly, cron.daily и другие папки cron. Cron заботится о выполнении приложений и скриптов в определенное время.

Если вы хотите быть строгим в отношении времени перезагрузки, просто цифры

sudo crontab -e

так что вы можете редактировать crontab для пользователя root.

Если вы чувствуете себя лучше, делая это графически, вы можете установить из Software Center gnome-schedule. Если вы хотите изменить gnome-schedule для пользователя root убедитесь, что вы запускаете его из терминала:

gksudo gnome-schedule

Весело играть вокруг!:)

PS: отличная точка зрения sBlatt! Мне было интересно, есть ли способ заставить cron.daily Время выполнения вручную.

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