Инструменты пользователя

Инструменты сайта


os:linux:cron

systemd.timer

Для работы нужно 3 компонента: скрипт, сервис systemd для запуска скрипта и таймер systemd для запуска сервиса.
Скрипт после создания нужно сделать исполняемым - chmod +x /scripts/test.sh

vi /etc/systemd/system/test.service
# Абсолютный минимум для сервиса:
[Service]
ExecStart=/scripts/test.sh
 
# Вариант создания
systemctl edit --force --full test.service
# Вариант редактирования
systemctl edit --full test.service
 
# Перечитать список сервисов (если редактировалось/создавалось с помощью systemctl edit, то не нужно)
sudo systemctl daemon-reload
# Можно запускать
systemctl start test.service
 
# Логи сервиса test в реальном времени
sudo journalctl -u test -f

Другие секции конфигурации сервиса

[Unit]
Description=This service runs the script /scripts/test.sh
 
[Service]
ExecStart=/scripts/test.sh
User=worker # от имени кого будет работать
 
# Если служба запускается по таймеру, секция [Install] не нужна
#[Install]
#WantedBy=multiuser.target # Если GUI нет
#WantedBy=graphical.target # Если это десктоп с GUI

Таймер

# Кладётся в ту же папку, что и сервис
vi /etc/systemd/system/test.timer
 
[Unit]
Description=This timer starts test.service
 
[Timer]
Unit=test.service
# [DayOfWeek] Year-Month-Day Hour:Minute:Second
OnCalendar=*-*-* 20:15:00
Persistent=true # Если срабатывание пропущено, запустить при загрузке системы
#OnBootSec=5min # Через 5 мин после загрузки
 
# Секция нужна для того, чтобы таймер можно было бы включить при загрузке системы
[Install]
WantedBy=timers.target
 
# Перечитать сервисы
sudo systemctl daemon-reload
# Включить таймер при загрузке системы
sudo systemctl enable test.timer
 
# Список таймеров
systemctl list-timers

https://www.youtube.com/watch?v=8640OcCL8T8
https://www.youtube.com/watch?v=OV3Gc0SISUo
Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям

os/linux/cron.txt · Последнее изменение: 30.07.2024 19:21 — 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki