우당탕탕
systemd Restart와 StartLimit으로 재시작 루프 제어 본문
systemd 서비스 유닛 파일에서 Restart=와 StartLimit 관련 옵션을 활용하면 서비스의 재시작 동작과 재시작 루프를 효과적으로 제어할 수 있습니다.
Restart= 옵션
Restart=는 서비스 프로세스가 종료되었을 때 systemd가 자동으로 재시작할지 여부를 지정합니다. 가능한 값으로는 no (기본값), on-success, on-failure, on-abnormal, on-watchdog, on-abort, always 등이 있습니다. 예를 들어 Restart=on-failure로 설정하면 서비스가 비정상 종료되었을 때만 재시작합니다.
StartLimit 관련 옵션
재시작 루프 방지를 위해 systemd는 StartLimitIntervalSec=와 StartLimitBurst= 옵션을 제공합니다. 이들은 단위 시간 내에 재시작 시도를 제한합니다.
StartLimitIntervalSec=: 재시작 시도를 계산하는 시간 간격(초 단위)StartLimitBurst=: 지정한 시간 간격 내 허용되는 최대 재시작 횟수
예를 들어 StartLimitIntervalSec=60과 StartLimitBurst=5로 설정하면, 60초 내에 5회 이상 재시작 시도가 발생하면 추가 재시작을 중단합니다.
재시작 루프 제어
서비스가 실패하여 반복적으로 재시작되는 상황에서, 위 옵션들을 적절히 설정하면 무한 재시작 루프를 방지할 수 있습니다. systemd는 재시작 제한에 도달하면 서비스 시작을 중단하고, 로그에 관련 정보를 기록합니다.
적용 예시
[Service]
ExecStart=/usr/bin/your-service
Restart=on-failure
StartLimitIntervalSec=60
StartLimitBurst=3
위 설정은 서비스가 실패할 경우 최대 3회까지 60초 내에 재시작을 시도하며, 그 이상 실패 시 재시작을 중단합니다.
참고
systemd 서비스 유닛 파일의 [Service] 섹션에서 이 옵션들을 설정할 수 있으며, 자세한 내용은 systemd.service 매뉴얼을 참고하시기 바랍니다.
'Linux' 카테고리의 다른 글
| Ubuntu 서버 처음 켤 때 보안 설정 제가 이렇게 삽질했어요 (0) | 2026.10.04 |
|---|---|
| Linux 서버 디스크 풀 문제, 원인 찾고 단계별 해결한 경험담 (0) | 2026.09.14 |
| Nginx 리버스 프록시 SSL 적용, 2026년 달라진 점까지 단계별 정리 (0) | 2026.09.14 |
| Docker Compose로 개발 환경 통합할 때 제가 겪은 문제와 해결법 (0) | 2026.09.01 |
| Linux 메모리 부족 문제, 저는 이렇게 원인 추적하고 해결했어요 (0) | 2026.08.24 |
