SystemdDoctor
мешает работе таймеры расписание

Два таймера на одну службу: срабатывания накладываются

Несколько таймеров могут вызывать одну службу. Пока она активна, новые срабатывания ничего не делают: задание просто не создаётся. Для одноразовых задач это значит потерянные запуски.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Срабатывания приходятся на время работы задачи

    Задача выполняется дольше промежутка между срабатываниями. Второй таймер срабатывает в пустоту.

  2. Расписания задают одно и то же время

    Два таймера с пересекающимися расписаниями — обычно следствие копирования файлов. Один из них лишний.

  3. Нужны параллельные запуски

    Если задача должна выполняться несколько раз одновременно с разными параметрами, обычная служба этого не позволяет.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Все таймеры, их расписания и вызываемые службы.

systemctl list-timers --all --no-pager | head -20

Сколько раз задача фактически запускалась.

journalctl -u myapp.service --since "1 day ago" --no-pager | grep -ciE "started"

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Срабатывания приходятся на время работы задачи
Почему происходит
Задача выполняется дольше промежутка между срабатываниями. Второй таймер срабатывает в пустоту.
Как проверить
Посмотрите все таймеры, вызывающие службу, и время её работы.
systemctl list-timers --all --no-pager | grep myapp
journalctl -u myapp.service --no-pager | grep -iE "started|finished" | tail -6
Как исправить
Оставьте один таймер и настройте расписание с запасом относительно времени выполнения. Для параллельных запусков нужна шаблонная служба с разными экземплярами.
2. Расписания задают одно и то же время
Почему происходит
Два таймера с пересекающимися расписаниями — обычно следствие копирования файлов. Один из них лишний.
Как проверить
Посмотрите расписания.
systemctl show myapp.timer myapp-daily.timer -p TimersCalendar 2>/dev/null
Как исправить
Удалите дублирующий таймер: systemctl disable --now и уберите файл.
3. Нужны параллельные запуски
Почему происходит
Если задача должна выполняться несколько раз одновременно с разными параметрами, обычная служба этого не позволяет.
Как проверить
Посмотрите, чем различаются запуски.
systemctl cat myapp.service | grep ExecStart
Как исправить
Сделайте службу шаблонной и вызывайте экземпляры: myapp@utro.service и myapp@vecher.service работают независимо.

Пример вывода

Второе срабатывание пришло, пока задача работала. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

systemd[1]: myapp-hourly.timer: Triggering OnCalendar=hourly
systemd[1]: myapp.service: Start request repeated too quickly.
# либо тише: задание не создаётся вовсе, потому что служба активна

Связанные ошибки

Источники

  • systemd.timer(5)
    Связь таймера и службы, параметр Unit=.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено двумя таймерами на одну задачу длительностью больше промежутка.
    собственная проверка, systemd 255
    сверено 15 сентября 2026