Зачем конвертировать TIMER в SERVICE?
В systemd это две половины одной задачи: .timer определяет «когда», а .SERVICE определяет «что». Таким образом, реальная задача - не конвертация, а написание соответствующего сервис-юнита, который триггерит таймер (либо по совпадению имени по умолчанию, либо через директиву Unit=).
Способы конвертации TIMER в SERVICE
Любой текстовый редактор FREE
Создайте файл с тем же базовым именем, например backup.service рядом с backup.timer, добавив секцию [Service] с ExecStart=, где указана ваша команда; таймер активирует его автоматически по имени.
systemctl edit FREE
Выполните systemctl edit --full --force backup.service, чтобы открыть новый юнит в нужном каталоге, определите ExecStart=, затем выполните systemctl daemon-reload и включите таймер.
Об этих форматах
Файл .timer - это юнит systemd, который планирует время запуска другого юнита (обычно соответствующего файла .service) в Linux, являясь современной заменой cron. Это небольшой текстовый…
Открыть детали .TIMER →Файл .SERVICE связан с Mac OS X Service Application, это файл категории system.
Открыть детали .SERVICE →Качество и на что обратить внимание
- По умолчанию
backup.timerактивируетbackup.service; используйтеUnit=в секции[Timer]таймера только если имя сервиса отличается. - Для запланированных задач сервис обычно должен иметь
Type=oneshot, чтобы systemd обрабатывал каждый запуск как отдельное задание. - После создания или изменения юнита выполните
systemctl daemon-reload, иначе таймер не увидит новый сервис.
Часто задаваемые вопросы
Может ли таймер работать без сервиса?
.service, в котором прописана команда.Как таймер узнает, какой сервис запускать?
foo.timer запускает foo.service), если только вы не переопределили это с помощью Unit= в файле таймера.Что нужно включать: таймер или сервис?
.timer; systemd сам запустит сервис по расписанию.Где находятся эти файлы юнитов?
/etc/systemd/system/ для системных юнитов; после редактирования не забудьте выполнить systemctl daemon-reload.