Назад | Перейти на главную страницу

Запрос на запуск службы повторяется слишком быстро, ограничение на запуск отказывается

У меня есть служба systemd, которая отображает следующую ошибку service start request repeated too quickly, refusing to start

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

Более того, что делает too quickly точно означает, это лимит на количество перезапусков за заданный период времени?

Предел по умолчанию - разрешить 5 перезапусков за 10 секунд. Если услуга превышает этот порог из-за Restart= config в определении службы, он больше не будет пытаться перезапустить.

Ставки настроены с StartLimitIntervalSec= и StartLimitBurst= варианты и Restart= опция контролирует, когда SystemD пытается перезапустить службу.

Больше информации в man systemd.unit и man systemd.service.

Затем используйте systemctl daemon-reload для перезагрузки конфигурации устройства.

Стоит отметить, что некоторые сбои, похоже, вызывают эту ошибку, тогда как причина в другом.

Я закомментировал время запрета по умолчанию и вставил альтернативный встроенный **bantime = 7200 #3600**

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

Вместо того, чтобы ошибиться в любом из этих случаев, fail2ban отказался перезапускаться, давая

запрос на запуск службы повторяется слишком быстро, отказ в запуске ошибка

Только когда я закомментировал раздел [sasl], я получил сообщение об ошибке, относящееся к недопустимому времени блокировки, из которого я понял, что он не может справиться со встроенными комментариями.

Когда я исправил это и раскомментировал новый раздел [sasl], я получил сообщение об ошибке, что фильтр не найден. Замена правильно названного фильтра привела к перезагрузке fail2ban, как и ожидалось.

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

Один быстрый и грязный способ, который я использовал для этой же проблемы, - это я создал сценарий оболочки bash, который спит, чтобы служба запускалась не так быстро. У меня работает, так как немедленные перезагрузки не нужны ..

/root/sleep_and_start_autossh.sh

    /bin/bash -e
    sleep 200
    /usr/bin/autossh args...

/etc/systemd/system/autossh.service

    StartLimitIntervalSec=120 # this didn't seem to do much for me.
    #ExecStart=/usr/bin/autossh args ...
    ExecStart=/root/sleep_and_start_autossh.sh

Вы не указываете, какая служба не запускается с этой ошибкой.

У меня была эта проблема с fail2ban, и как в ответ MickG, ошибка на самом деле была в моей конфигурации fail2ban и не имела ничего общего с конфигурацией службы systemd.

Решение fail2ban - начать с

fail2ban-client -x start

который отобразит подробное сообщение об ошибке. Почему-то при использовании systemctl start fail2ban настоящая ошибка теряется и не может быть найдена ни в одном журнале.

После исправления ошибки конфигурации службу можно снова остановить или (повторно) запустить с помощью systemd.