Как настроить таймеры systemd для запуска трех отдельных задач одну за другой в определенное время?

У меня есть три задачи, которые в настоящее время ежедневно выполняются cron, одна за другой, а именно:

      gatekeeper ~ # ls -l /etc/cron.daily/
total 92
-rwxr-xr-x  1 root root 3814 May 10  2019 1task-A.sh
-rwxr-xr-x  1 root root 1406 Jun 28  2015 2task-B.sh
-rwxr-xr-x  1 root root 1414 May 10  2019 3task-C.sh

Мне нужно повторить это с помощью systemd.

Я знаю, что могу создать три одноразовых службы systemd, управляемых тремя файлами таймера systemd, однако это приведет к тому, что три задачи будут выполняться независимо друг от друга, параллельно и не по порядку.

Какую модификацию мне внести в файл службы systemd или файл таймера, чтобы указать, что три задачи при выполнении должны выполняться последовательно (не параллельно) и по порядку (не в случайном порядке).

1 ответ

Попробуйте использовать только 1 таймер и 3 службы. Затем настройте службыTypes=кoneshot. УстановивAfter=иWants=свойств между службами, вы сможете запускать 3 службы последовательно при срабатывании таймера.

Посмотрите этот пост: https://serverfault.com/questions/900779/systemd-setting-dependentities-between-templated-timer-units .

task-C.timer:

      [Unit]
Description=daily task

[Timer]
OnCalendar=daily
Unit=task-C.service

[Install]
WantedBy=timers.target

task-C.service:

      [Unit]
Description=task C
Wants=task-B.service
After=task-B.service

[Timer]
ExecStart=/usr/bin/task-C.sh
Type=oneshot

[Install]
WantedBy=timers.target
Другие вопросы по тегам