Понимание systemd включения/запуска с таймерамиLinux

Ответить
Anonymous
 Понимание systemd включения/запуска с таймерами

Сообщение Anonymous »

Я не могу уложить в голове это. У меня есть этот таймер:
my-service.timer

Код: Выделить всё

[Unit]
Description=Runs my-service
After=network-online.target

[Timer]
OnCalendar=*:0/5
Persistent=true

[Install]
WantedBy=multi-user.target
И соответствующий сервис:
my-service.service

Код: Выделить всё

[Unit]
Description=Executes a service

[Service]
ExecStart=/some/fancy/bash/script.sh
Restart=no
Эти файлы помещаются в /etc/systemd/system после развертывания приложения, перезаписывающего и существующую конфигурацию.
Что теперь нужно ли мне сделать, чтобы служба запускалась в указанный календарный интервал времени без перезагрузки системы?
Что я пробовал:

Код: Выделить всё

systemctl reenable --now my-service.timer
  • Мало что делает, включает службу, но не переводит ее в активное состояние. Я подумал, что этого должно быть достаточно, чтобы запустить таймер:

Код: Выделить всё

(base) $ status my-service.timer
○ my-service.timer - Runs my-service
Loaded: loaded (/etc/systemd/system/my-service.timer; enabled; vendor preset: disabled)
Active: inactive (dead)
Trigger: n/a
Triggers: ● my-service.service
Значит, сервис все еще мертв. Тогда я подумал, что проблема может быть в том, что служебный файл не включен. Поэтому я включил служебный файл, используя

Код: Выделить всё

systemctl enable my-service.service
Это сделало мой блок зеленым в выводе статуса таймера. Однако это все еще не сработало.
Я попробовал

Код: Выделить всё

systemctl start my-service.timer
И, наконец, это сработало: таймер теперь запускает служебный файл! Но я действительно не понимаю, какие шаги действительно необходимы, чтобы все заработало? Ответы на следующие вопросы помогут мне начать работу:
Вопросы:
  • Нужен ли таймер быть запущен для запуска выполнения служебного файла?
  • Почему systemctl не включается повторно --now my-service.timer запускает таймер (что, как я думал, так и будет) с флагом --now).
  • Нужно ли а) включать служебный файл, который запускается только соответствующим таймером, б) запускать или в) ничего из вышеперечисленного?
  • Нужно ли мне использовать systemctl deamon -reload после того, как я заменил старые файлы модулей/таймера потенциально новыми/обновленными файлами? Или достаточно просто выполнить systemctl reenable или systemctl restart (что это?).


Подробнее здесь: https://stackoverflow.com/questions/792 ... ith-timers
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»