런타임에 systemd watchdog에 애플리케이션을 등록할 수 있는 방법이 있습니까? 예를 들어 systemd API를 통해 systemd 단위 파일을 사용하지 마십시오.
시스템 재설정 전용 Linux 워치독? 애플리케이션 재설정에 사용할 수 있나요?
답변1
Systemd의 감시 기능은 주로 3가지 작업에 사용됩니다.
- 하드웨어 재설정(/dev/watchdog에 노출된 CPU 하드웨어 감시 기능 활용) 이는
RuntimeWatchdogSec=
다음 옵션을 통해 활성화 됩니다./etc/systemd/system.conf
- 시스템 단위 정의에서 이것이 예측될 때마다 애플리케이션이 재설정됩니다.
- 시스템 재설정은 응용 프로그램 재설정이 여러 번 실패한 경우를 대비한 대체 조치입니다. systemd 단위로도 정의됨
예시 유닛 파일:
[Unit]
Description=My Little Daemon
Documentation=man:mylittled(8)
[Service]
ExecStart=/usr/bin/mylittled
WatchdogSec=30s
Restart=on-failure
StartLimitInterval=5min
StartLimitBurst=4
StartLimitAction=reboot-force
이 예는 다음에서 가져온 것입니다.http://0pointer.de/blog/projects/watchdog.html, Watchdog 서비스를 사용할 수 있는 대상과 방법에 대한 완전한 개요를 제공합니다.
답변2
프로세스를 복구하거나 다시 시작하는 데 사용할 수 있는 지속적인 오류에 대해 "복구 바이너리"를 실행할 수도 있지만 Linux 감시 데몬은 시스템 재설정 작업에 사용해야 합니다. 일반적으로 데몬을 모니터링하고 다시 시작하려면 이미 답변된 init/upstart/systemd 지원 방법을 사용해야 하며 가장 심각한 "다시 시작해야만 문제가 해결되는" 상황에 대해 감시 작업을 예약해야 합니다.
답변3
귀하의 질문에는 여러 가지 문제나 기대 사항이 있습니다.
시스템 감시
Linux 서비스 감시의 경우 그 목적은 시스템(운영 체제, Linux) 문제(손상, 정지...)를 감지하는 것이며 다음과 같이 작동합니다.
- 기본적으로 "모든 것이 괜찮습니다. 저는 살아있습니다!"라고 알려주는 특별 서비스(가급적이면 하드웨어 지원)를 마련하세요.
- 끊임없이, 정기적으로 말해준다
- 예상보다 오랫동안 알림을 받지 못한 경우 시스템이 응답하지 않는다고 판단하고 시스템을 재부팅하는 관찰자(하드웨어 선호)를 두십시오(소프트웨어 또는 하드웨어 재부팅을 통해).
- 특정 정지 및 재부팅인 경우 시스템이 복구되기를 바랍니다.
- 심각한 오류가 발생하면 워치독이 다시 트리거되고 시스템이 반복적으로 다시 시작됩니다.
애플리케이션 워치독
반면에 사람들은 애플리케이션/서비스의 상태를 관찰하는 데 관심이 있습니다.
- 예를 들어, 애플리케이션이 종료되었는지 확인하고 다시 시작할 수 있습니다(이를 위해서는 가급적이면 다음을 통해 서비스로 시작해야 합니다).
systemd
기구)또는 - 애플리케이션이 정지되지 않도록 하려면 애플리케이션이 "모든 것이 괜찮습니다. 살아있습니다"라고 보고하는 외부 감시 서비스가 필요합니다. 이러한 애플리케이션에서 지원하는 감시 장치 중 하나는 다음과 같습니다.감시 장치