systemd watchdog 지원을 사용하여 애플리케이션 다시 시작

systemd watchdog 지원을 사용하여 애플리케이션 다시 시작

systemd서비스 정의에 python정의된 무조건 종료 시 스크립트를 다시 시작하는 간단한 서비스 단위가 있습니다 . 스크립트가 어떻게든 중단되더라도 유닛 파일에서 변수를 활성화하여 다시 시작할 Restart=always수 있다는 것을 확실히 하고 싶습니다 .WatchdogSec=

내 질문은시스템 로깅에 대한 공식 문서명확하게 설명되지 않았습니다.

같은 페이지를 인용하면,

WatchdogSec=

서비스의 감시 시간 제한을 구성합니다. 시작이 완료되면 워치독이 활성화됩니다. 이 서비스는 sd_notify(3)주기적으로 호출 되어야 합니다 "WATCHDOG=1"(예: "keep-alive ping").

확실하지 않은 부분은,제공하다자체적으로 Watchdog 서비스(또는) 실행 중인 애플리케이션(제 경우에는 Python 스크립트)의 핑을 유지 관리해야 하며, 언급된 환경 변수를 업데이트하여 핑을 유지해야 합니다.

내 간단한 서비스 정의

[Unit]
Description=dev-Status: Computes RF device availability status
           
[Service]
Type=simple

EnvironmentFile=/etc/sysconfig/db_EndPoint
ExecStart=/usr/bin/python /opt/foobar/foobar.py
RestartSec=10
Restart=always
         
[Install]
WantedBy=default.target

그렇다면 이 서비스 파일에 다음 줄을 추가하면 스크립트가 자동으로 다시 시작됩니까?

WatchdogSec=30s

답변1

워치독을 "비트"하거나 핑하려면 Python을 사용할 수 있습니다.체계알림을 보낼 패키지:

from systemd.daemon import notify, Notification
notify(Notification.WATCHDOG)

관련 정보