os:linux:systemd
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
os:linux:systemd [19.09.2024 18:13] – [Unit-файл] viacheslav | os:linux:systemd [23.03.2025 08:36] (текущий) – [Таймер для периодического запуска] viacheslav | ||
---|---|---|---|
Строка 4: | Строка 4: | ||
[[https:// | [[https:// | ||
https:// | https:// | ||
+ | https:// | ||
+ | {{ : | ||
+ | [[https:// | ||
===== Unit-файл ===== | ===== Unit-файл ===== | ||
https:// | https:// | ||
Строка 12: | Строка 15: | ||
Пример unit-файла: | Пример unit-файла: | ||
- | <file bash / | + | <file bash / |
- | [Unit] | + | |
[Unit] | [Unit] | ||
Description=OpenSSH server daemon | Description=OpenSSH server daemon | ||
Строка 183: | Строка 185: | ||
https:// | https:// | ||
- | ===== Таймер для периодического запуска ===== | + | Псевдосервис и получение его статуса |
+ | <code bash> | ||
+ | systemd-run --user --unit=camunda sleep infinity | ||
+ | Running as unit: camunda.service | ||
+ | |||
+ | systemctl --user is-active camunda.service | ||
+ | active # or inactive | ||
+ | </ | ||
+ | ===== systemd.timer | ||
Сервис типа oneshot, запускающий скрипт | Сервис типа oneshot, запускающий скрипт | ||
<code ini> | <code ini> | ||
Строка 216: | Строка 227: | ||
https:// | https:// | ||
https:// | https:// | ||
+ | |||
+ | Для работы нужно 3 компонента: | ||
+ | Скрипт после создания нужно сделать исполняемым - '' | ||
+ | |||
+ | <code bash> | ||
+ | vi / | ||
+ | # Абсолютный минимум для сервиса: | ||
+ | [Service] | ||
+ | ExecStart=/ | ||
+ | |||
+ | # Вариант создания | ||
+ | systemctl edit --force --full test.service | ||
+ | # Вариант редактирования | ||
+ | systemctl edit --full test.service | ||
+ | |||
+ | # Перечитать список сервисов (если редактировалось/ | ||
+ | sudo systemctl daemon-reload | ||
+ | # Можно запускать | ||
+ | systemctl start test.service | ||
+ | |||
+ | # Логи сервиса test в реальном времени | ||
+ | sudo journalctl -u test -f | ||
+ | </ | ||
+ | |||
+ | Другие секции конфигурации сервиса | ||
+ | <code bash> | ||
+ | [Unit] | ||
+ | Description=This service runs the script / | ||
+ | |||
+ | [Service] | ||
+ | ExecStart=/ | ||
+ | User=worker # от имени кого будет работать | ||
+ | |||
+ | # Если служба запускается по таймеру, | ||
+ | #[Install] | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | Таймер | ||
+ | <code bash> | ||
+ | # Кладётся в ту же папку, что и сервис | ||
+ | vi / | ||
+ | |||
+ | [Unit] | ||
+ | Description=This timer starts test.service | ||
+ | |||
+ | [Timer] | ||
+ | Unit=test.service | ||
+ | # [DayOfWeek] Year-Month-Day Hour: | ||
+ | OnCalendar=*-*-* 20:15:00 | ||
+ | Persistent=true # Если срабатывание пропущено, | ||
+ | # | ||
+ | |||
+ | # Секция нужна для того, чтобы таймер можно было бы включить при загрузке системы | ||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | |||
+ | # Перечитать сервисы | ||
+ | sudo systemctl daemon-reload | ||
+ | # Включить таймер при загрузке системы | ||
+ | sudo systemctl enable test.timer | ||
+ | |||
+ | # Список таймеров | ||
+ | systemctl list-timers | ||
+ | </ | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// |
os/linux/systemd.1726769605.txt.gz · Последнее изменение: 19.09.2024 18:13 — viacheslav