os:linux:systemd
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
os:linux:systemd [23.03.2025 08:36] – [Таймер для периодического запуска] viacheslav | os:linux:systemd [12.10.2025 13:26] (текущий) – [journalctl] viacheslav | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== systemd ====== | ====== systemd ====== | ||
- | https:// | + | https:// |
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
[[https:// | [[https:// | ||
[[https:// | [[https:// | ||
Строка 74: | Строка 77: | ||
</ | </ | ||
+ | ==== Создать юнит ==== | ||
+ | <code bash> | ||
+ | # Создание пользовательского сервиса и таймера (каталог ~/ | ||
+ | systemctl edit myservice --user --full --force | ||
+ | systemctl edit myservice.timer --user --full --force | ||
+ | |||
+ | # Создание системного сервиса и таймера (каталог / | ||
+ | sudo systemctl edit myservice --full --force | ||
+ | sudo systemctl edit myservice.timer --full --force | ||
+ | </ | ||
+ | После '' | ||
==== Зависимость между юнитами и порядок запуска ==== | ==== Зависимость между юнитами и порядок запуска ==== | ||
Перед запуском юнит может '' | Перед запуском юнит может '' | ||
Строка 295: | Строка 309: | ||
[[https:// | [[https:// | ||
[[https:// | [[https:// | ||
- | [[https:// | + | [[https:// |
+ | [[https:// | ||
+ | |||
+ | ==== Минимальный вариант ==== | ||
+ | <code bash> | ||
+ | mkdir -p ~/ | ||
+ | cd ~/ | ||
+ | loginctl enable-linger $USER | ||
+ | |||
+ | ### cleanup.service | ||
+ | [Service] | ||
+ | ExecStart=/ | ||
+ | |||
+ | ### cleanup.timer | ||
+ | # Секция [Install] нужна для автозагрузки таймера | ||
+ | [Timer] | ||
+ | OnCalendar=*-*-* 2:00:00 | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | |||
+ | # Шебанг в скрипте обязателен, | ||
+ | ### / | ||
+ | # | ||
+ | |||
+ | find / | ||
+ | find / | ||
+ | find / | ||
+ | |||
+ | ### Запуск, | ||
+ | systemctl --user daemon-reload | ||
+ | systemctl --user start cleanup.timer | ||
+ | systemctl --user enable cleanup.timer | ||
+ | </ | ||
+ | |||
+ | ==== Срабатывание чаще минуты ==== | ||
+ | |||
+ | Например, | ||
+ | <code bash> | ||
+ | [Timer] | ||
+ | # Каждые 3 минуты | ||
+ | # OnCalendar=*: | ||
+ | # Каждые 10 сек | ||
+ | OnCalendar=*: | ||
+ | # Обязательный параметр для таймеров меньше минуты | ||
+ | AccuracySec=1s | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=timers.target | ||
+ | </ | ||
+ | |||
+ | ===== journalctl ===== | ||
+ | <code bash> | ||
+ | unit_name=" | ||
+ | # Вывести лог последнего запуска (MainPID показывается только если сервис работает), | ||
+ | journalctl --user _PID=$(systemctl show --user --property ExecMainPID --value $unit_name) | ||
+ | # Вычисление исходя из времени запуска (для коллекции. Лучше использовать PID) | ||
+ | journalctl --user -u $unit_name --since " | ||
+ | </ | ||
+ | ===== Литература ===== | ||
+ | [[https:// | ||
+ | [[https:// |
os/linux/systemd.1742718969.txt.gz · Последнее изменение: — viacheslav