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)