systemd watchdogサポートを使用してアプリケーションを再起動する

systemd watchdogサポートを使用してアプリケーションを再起動する

systemdサービス定義でpython定義されている無条件シャットダウン時にスクリプトを再起動する単純なサービスユニットがあります。スクリプトが何らかの方法で中断されても、ユニットファイルで変数を有効にして再起動できることRestart=alwaysを確実にしたいと思います。WatchdogSec=

私の質問はシステムロギングに関する公式文書明確に説明されていません。

同じページを引用すると、

WatchdogSec=

サービスの監視タイムアウトを設定します。起動が完了すると、ウォッチドッグが有効になります。このサービスはsd_notify(3)定期的に呼び出す必要があります"WATCHDOG=1"(たとえば、「keep-alive ping」)。

不明な部分は、提供する独自にウォッチドッグサービス(または)実行しているアプリケーション(私の場合はPythonスクリプト)のpingを維持し、言及した環境変数を更新してpingを維持する必要があります。

私の簡単なサービス定義

[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

ウォッチドッグを「ビット」またはpingするには、Pythonを使用できます。システム通知を送信するパッケージ:

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

関連情報