서비스 시작 요청이 너무 빨리 반복되어 시작 제한을 거부


23

다음과 같은 오류가 표시되는 시스템 서비스가 있습니다 service start request repeated too quickly, refusing to start

서비스가 실패시 다시 시작되도록 구성되어 있으며 다시 시작되고 있음을 이해합니다. 그러나 정확히 언제 다시 시작을 거부합니까? 그것을 정의하는 한계 또는 숫자가 있습니까?

또한, too quickly정확히 어떤 의미입니까, 주어진 기간 동안의 재시작 횟수 제한입니까?

답변:


26

기본 제한은 10 초 동안 5 번의 재시작을 허용하는 것입니다. Restart=서비스 정의 의 구성 옵션 으로 인해 서비스가 해당 임계 값을 초과 하면 더 이상 재시작을 시도하지 않습니다.

요금은 StartLimitIntervalSec=StartLimitBurst=옵션 으로 구성되며 Restart=옵션은 SystemD가 서비스를 다시 시작하려고 할 때 제어합니다.

더 많은 정보man systemd.unitman systemd.service.

그런 다음을 사용 systemctl daemon-reload하여 장치 구성을 다시로드하십시오.


3
감사합니다 @Sven. 이러한 구성은 어디에 정의되어 있습니까?
Vikas Tiwari

서비스 파일에서. StartLimit...옵션이 될 그냥 기본값 (10 초에서 5 다시 시작)를 사용하지 않을 수 있습니다.
Sven

다른 설정 파일에 기본값이 기록되어 있습니까?
Vikas Tiwari

3
예를 들어 (및 유사한) 옵션 을 사용하여 기본값 구성 수 있습니다. 그러나 이들은 종종 설정되지 않으며 컴파일 된 기본값이 사용됩니다. 참조하십시오 . /etc/systemd/system.confDefaultStartLimitIntervalSecman systemd-system
Sven

@Sven 서비스 파일은 어디에 있습니까?
사용자

2

원인은 다르지만 일부 오류로 인해이 오류가 발생하는 것 같습니다.

기본 금지 시간을 주석 처리하고 대체 인라인을 삽입했습니다. **bantime = 7200 #3600**

또한 새 섹션 [sasl]을 추가했는데 여기에는 필자가 팔로우 한 기사에서 제공된 것과 다른 필터 이름이 포함되었습니다.

fail2ban은 이들 중 하나에서 오류를 발생시키는 대신 다시 시작을 거부하여

서비스 시작 요청이 너무 빨리 반복되어 오류 시작을 거부

[sasl] 섹션에 주석을 달았을 때만 잘못된 금지 시간을 나타내는 오류가 발생하여 인라인 주석에 대처할 수 없다는 것을 수집했습니다.

이를 수정하고 새 [sasl] 섹션의 주석 처리를 제거하면 필터를 찾을 수 없다는 오류가 발생했습니다. 올바르게 이름이 지정된 필터를 대체하면 예상대로 fail2ban 다시로드가 발생했습니다.

따라서 변경하고이 오류가 발생하면 증상을 해결하기 전에 변경 사항을 제거하고 여전히 동일한 오류가 발생하는지 확인하십시오.


0

이 같은 문제에 대해 방금 사용한 한 가지 빠르고 더러운 방법은 서비스가 빠르게 시작되지 않도록 잠자기 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

당신은 할 필요가 낮은 StartLimitIntervalSec 스로틀을 피하기 위해, 또는 비활성화 0으로 설정합니다. 시스템 설명서를 읽으십시오.
Vladimir Panteleev

0

이 오류로 시작하지 못한 서비스를 지정하지 않았습니다.

나는 MickGfail2ban대답에서와 같이이 문제 가 있었고 실제로 오류는 fail2ban 구성에 있었고 시스템 서비스 구성과 관련이 없었습니다.

fail2ban을 사용하면 해결책은

fail2ban-client -x start

자세한 오류 메시지가 표시됩니다. 어떤 이유로 systemctl start fail2ban실제 오류를 사용할 때 어떤 로그에서도 찾을 수 없게됩니다.

구성 오류가 수정되면 서비스를 다시 중지하거나 systemd로 다시 시작할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.