Как я могу запланировать ночную перезагрузку?
У меня периодически возникают проблемы с запуском определенного приложения, 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. Имена файлов и описания модулей в примере выбраны произвольно и могут быть изменены.
Добавьте сервисный модуль, который перезагружает систему. Для этого создайте новый файл в
/etc/systemd/system/sched-reboot.service
и добавьте в него необходимую конфигурацию. Следующая конфигурация службы будет запускать принудительную перезагрузку через systemctl при каждом запуске.[Unit] Description=Scheduled Reboot [Service] Type=oneshot ExecStart=/usr/bin/systemctl --force reboot
Добавьте таймер, который будет запускать службу перезагрузки по расписанию. Создайте новый файл в
/etc/systemd/system/sched-reboot.timer
. Следующая конфигурация для таймера будет запускать службу перезагрузки ежедневно в 4 часа утра.[Unit] Description=Reboot Scheduling [Timer] OnCalendar=*-*-* 4:00:00 [Install] WantedBy=multi-user.target
(Необязательно) Выполнить
systemd-analyze verify /etc/systemd/system/sched-reboot.*
проверить наличие ошибок в конфигурационных файлах. Если возврат пуст, файлы в порядке.Включите и запустите таймер, запустив
sudo systemctl enable sched-reboot.timer
иsudo systemctl start sched-reboot.timer
.(Необязательно) Выполнить
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
Время выполнения вручную.