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

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


os:linux:systemd

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
os:linux:systemd [23.03.2025 08:36] – [Таймер для периодического запуска] viacheslavos:linux:systemd [30.04.2025 10:57] (текущий) – [Минимальный вариант] viacheslav
Строка 74: Строка 74:
 </code> </code>
  
 +==== Создать юнит ====
 +<code bash>
 +# Создание пользовательского сервиса и таймера (каталог ~/.config/systemd/user)
 +systemctl edit myservice --user --full --force
 +systemctl edit myservice.timer --user --full --force
 +
 +# Создание системного сервиса и таймера (каталог /etc/systemd/system), нужен рут
 +sudo systemctl edit myservice --full --force
 +sudo systemctl edit myservice.timer --full --force
 +</code>
 +После ''systemctl edit'' делать ''systemctl daemon-reload'' не нужно, в отличие от создания юнита как текстового файла в редакторе.
 ==== Зависимость между юнитами и порядок запуска ==== ==== Зависимость между юнитами и порядок запуска ====
 Перед запуском юнит может ''wants'' или ''requires'' другой юнит. Разница: Перед запуском юнит может ''wants'' или ''requires'' другой юнит. Разница:
Строка 295: Строка 306:
 [[https://www.youtube.com/watch?v=8640OcCL8T8|Linux Command Line (57) systemd.timer pt1 - MichaelsTechTutorials]]\\ [[https://www.youtube.com/watch?v=8640OcCL8T8|Linux Command Line (57) systemd.timer pt1 - MichaelsTechTutorials]]\\
 [[https://www.youtube.com/watch?v=OV3Gc0SISUo|Linux Command Line (58) systemd.timer pt2 - MichaelsTechTutorials]]\\ [[https://www.youtube.com/watch?v=OV3Gc0SISUo|Linux Command Line (58) systemd.timer pt2 - MichaelsTechTutorials]]\\
-[[https://habr.com/ru/post/535930/|Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям]]+[[https://habr.com/ru/post/535930/|Systemd для продолжающих. Part 1 — Запуск юнитов по временным событиям]]\\ 
 +[[https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html|systemd.time — Time and date specifications]] 
 + 
 +==== Минимальный вариант ==== 
 +<code bash> 
 +mkdir -p ~/.config/systemd/user 
 +cd ~/.config/systemd/user 
 +loginctl enable-linger $USER 
 + 
 +### cleanup.service 
 +[Service] 
 +ExecStart=/home/admin/scripts/cleanup.sh 
 + 
 +### cleanup.timer 
 +# Секция [Install] нужна для автозагрузки таймера 
 +[Timer] 
 +OnCalendar=*-*-* 2:00:00 
 + 
 +[Install] 
 +WantedBy=timers.target 
 + 
 +# Шебанг в скрипте обязателен, иначе сервис не поймёт, что именно он запускает 
 +### /home/admin/scripts/cleanup.sh 
 +#!/bin/bash 
 + 
 +find /opt/maven_repo/jjj -name 'business-application-*-1-DBI-*' -type f -mtime +5 -delete 
 +find /opt/maven_repo/jjj -name 'business-model-*-1-DBI-*' -type f -mtime +10 -delete 
 +find /opt/maven_repo/jjj/metamodel-* -name 'metamodel-*-1-DBI-*' -type f -mtime +5 -delete 
 + 
 +### Запуск, автозагрузка 
 +systemctl --user daemon-reload 
 +systemctl --user start cleanup.timer 
 +systemctl --user enable cleanup.timer 
 +</code> 
 + 
 +==== Срабатывание чаще минуты ==== 
 + 
 +Например, раз в 10 сек 
 +<code bash> 
 +[Timer] 
 +# Каждые 3 минуты 
 +# OnCalendar=*:0/
 +# Каждые 10 сек 
 +OnCalendar=*:*:0/10 
 +# Обязательный параметр для таймеров меньше минуты 
 +AccuracySec=1s 
 + 
 +[Install] 
 +WantedBy=timers.target 
 +</code> 
os/linux/systemd.1742718969.txt.gz · Последнее изменение: viacheslav

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki