다음과 같은 오류가 표시되는 시스템 서비스가 있습니다 service start request repeated too quickly, refusing to start
서비스가 실패시 다시 시작되도록 구성되어 있으며 다시 시작되고 있음을 이해합니다. 그러나 정확히 언제 다시 시작을 거부합니까? 그것을 정의하는 한계 또는 숫자가 있습니까?
또한, too quickly
정확히 어떤 의미입니까, 주어진 기간 동안의 재시작 횟수 제한입니까?
답변
기본 제한은 10 초 동안 5 번의 재시작을 허용하는 것입니다. Restart=
서비스 정의 의 구성 옵션 으로 인해 서비스가 해당 임계 값을 초과 하면 더 이상 재시작을 시도하지 않습니다.
요금은 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
답변
이 오류로 시작하지 못한 서비스를 지정하지 않았습니다.
나는 MickGfail2ban
의 대답에서와 같이이 문제 가 있었고 실제로 오류는 fail2ban 구성에 있었고 시스템 서비스 구성과 관련이 없었습니다.
fail2ban을 사용하면 해결책은
fail2ban-client -x start
자세한 오류 메시지가 표시됩니다. 어떤 이유로 systemctl start fail2ban
실제 오류를 사용할 때 어떤 로그에서도 찾을 수 없게됩니다.
구성 오류가 수정되면 서비스를 다시 중지하거나 systemd로 다시 시작할 수 있습니다.