複数のプロセスをパイプしてサービスとして実行するbashスクリプトを設定しました。これはうまく機能しますが、これを使用してWatchdogSec
状態がまだ正常であるかどうかを監視し、そうでない場合はすべての子プロセスを再起動したいと思います。
application-Cには、環境変数に基づく通知ロジックがありますWATCHDOG_USEC
。アプリケーションを呼び出すと正常に動作しますが、スクリプトの一部で最後のプロセスの場合は機能しません。
アプリケーションCが一部のデータを受信しない場合は異常と見なされるため、すべての項目を終了して再起動する必要があるという論理がある程度あります。
現在、サービスデーモンは30秒ごとにすべてのプロセスを再起動し、シグナルはスクリプトの一部であるとプロセス内で機能しないようです。
ウォッチドッグは、bashシェルプロセスのpingのみを許可できます。
何とか動作させることができますか?
[Unit]
Description=My script
After=multi-user.target
[Service]
WorkingDirectory=/home/pi/src/
ExecStart=/bin/bash myscript.sh
WatchdogSec=30s
Restart=on-failure
[Install]
WantedBy=multi-user.target
スクリプト:
application-a | application-b |application-c