무인 운용 현장에서 가장 골치 아픈 것은 "화면은 살아 있는데 프로그램이 멈춘" 상태입니다. 이 경우 단순 정전 복구 설정으로는 해결되지 않습니다.
# /etc/systemd/system.conf
RuntimeWatchdogSec=30s
RebootWatchdogSec=10min
# 하드웨어 워치독 디바이스 확인
ls /dev/watchdog*
가장 단순하고 효과적인 방법은 HTTP 헬스 엔드포인트를 두고, 응답이 없으면 systemd가 재시작하게 만드는 것입니다.
[Service]
Restart=always
RestartSec=5
WatchdogSec=60
# 앱이 sd_notify(WATCHDOG=1)를 보내야 함
재부팅이 잦으면 원인을 봐야 합니다. 워치독은 최후 수단이고, 로그를 남겨 왜 멈췄는지 추적할 수 있어야 합니다.