サービスを停止してスクリプトを実行した後、サービスを再起動するようにタイマーを設定したいと思います。
1つの可能性は次のとおりです。
Type=oneshot
ExecStartPre=/bin/systemctl stop myservice
ExecStart=/usr/local/bin/myscript.sh
ExecStartPost=/bin/systemctl start myservice
もう一つは、myscript.sh
を含むすべてを扱うことですsystemctl
。
systemctl
ただし、サービスと対話するためのシステム組み込みメカニズムがある場合は、サービス宣言に使用するのが難しいと思います。これらのタスクを実行するためのよりきれいな方法はありますか?
答え1
WatchdogSec を(ab?) 利用して、規定された時間内に確認できなかった場合、サービスは終了します。その後、再起動しますが、まずスクリプトを実行します。
WatchdogSec={interval}
Restart=on-watchdog
ExecStopPost=/script.sh
引用:監視セキュリティ
サービスの実行中にバックアップが可能な場合は、より良いサービスになります。