답변:
기본 제한은 10 초 동안 5 번의 재시작을 허용하는 것입니다. Restart=
서비스 정의 의 구성 옵션 으로 인해 서비스가 해당 임계 값을 초과 하면 더 이상 재시작을 시도하지 않습니다.
요금은 StartLimitIntervalSec=
및 StartLimitBurst=
옵션 으로 구성되며 Restart=
옵션은 SystemD가 서비스를 다시 시작하려고 할 때 제어합니다.
더 많은 정보 에 man systemd.unit
와 man systemd.service
.
그런 다음을 사용 systemctl daemon-reload
하여 장치 구성을 다시로드하십시오.
StartLimit...
옵션이 될 그냥 기본값 (10 초에서 5 다시 시작)를 사용하지 않을 수 있습니다.
/etc/systemd/system.conf
DefaultStartLimitIntervalSec
man systemd-system
원인은 다르지만 일부 오류로 인해이 오류가 발생하는 것 같습니다.
기본 금지 시간을 주석 처리하고 대체 인라인을 삽입했습니다.
**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
StartLimitIntervalSec
스로틀을 피하기 위해, 또는 비활성화 0으로 설정합니다. 시스템 설명서를 읽으십시오.