Автозапуск и задания по расписанию¶
Службы systemd и таймеры позволяют запускать собственные программы после загрузки системы и по расписанию. Это предпочтительнее фона в интерактивном SSH-сеансе.
Простая служба (пример)¶
Предположим, администратор создал диагностический сценарий /usr/local/sbin/niceos-health-check.sh, исполняемый только от непривилегированной учётной записи. Unit-файл /etc/systemd/system/niceos-health-check.service:
[Unit]
Description=Проверка состояния НАЙС.ОС
After=network.target
[Service]
Type=oneshot
User=healthcheck
ExecStart=/usr/local/sbin/niceos-health-check.sh
Это шаблон. Учётную запись healthcheck необходимо заранее создать в соответствии с локальной политикой; нельзя использовать несуществующего пользователя или запускать всё от root без необходимости.
Таймер (пример)¶
/etc/systemd/system/niceos-health-check.timer:
[Unit]
Description=Периодическая проверка НАЙС.ОС
[Timer]
OnCalendar=hourly
Persistent=true
[Install]
WantedBy=timers.target
После проверки синтаксиса и существования сценария:
sudo systemctl daemon-reload
systemd-analyze verify /etc/systemd/system/niceos-health-check.service
systemd-analyze verify /etc/systemd/system/niceos-health-check.timer
sudo systemctl enable --now niceos-health-check.timer
systemctl list-timers --all | grep niceos-health-check
Persistent=true помогает запустить пропущенное календарное задание после простоя, если таймер действительно установлен и доступно состояние. Для задания с опасными побочными эффектами эта опция может быть нежелательна.
Проверка и выключение¶
journalctl -u niceos-health-check.service -b --no-pager
sudo systemctl disable --now niceos-health-check.timer
При ошибках смотрите статус службы, а не только таймера. Не создавайте задания обновления ядра или перестройки firewall без отдельного плана возврата.