特定の時間内に systemd サービスを再起動します。

特定の時間内に systemd サービスを再起動します。

システム単位のファイルがあり、次のパラメータを指定して失敗した場合に再起動できることを知っています。

Restart=always
RestartSec=90

失敗するたびに90秒後に再起動します。

ただし、システム時間が特定の時間範囲(たとえば、08:00~17:00)の間にある場合にのみ、再起動して再起動するだけです。

systemdでこれを行う方法はありますか?

ベストアンサー1

サービス単位ファイルに直接設定:いいえ。

Heath Robinsonメカニズムの使用:はい、以下です。

  • どこかに2つのクリップファイルを作成し、wibble-in-hours.confこの設定をオンにしてwibble-out-of-hours.confこの設定をオフにします。章のタイトルを忘れないでください。
  • どの時点でも、/etc/systemd/system/wibble.service.d/restart.confこれはこれらのファイルの1つです。 systemdマニュアル(qv)では、組み込みディレクトリとフラグメントファイルについて説明します。
  • uschedule ジョブ、cron ジョブ、またはフラグメント ファイルの交換を希望するその他のメカニズムを設定し、適切な時間に呼び出し、systemctl daemon-reload営業時間外の時間にサービスが終了したら、サービスを開始します。 (サービスのブロック、無効化、および一部のオペレーティングシステムがパッケージのアップグレード中にサービスを一時的に停止することに注意してください。これらすべてがサービスを開始するかどうかをテストすることが重要です。)

おすすめ記事