私はシステムタイマーを書いています。 WantedByにはどのような値を使うべきですか?

私はシステムタイマーを書いています。 WantedByにはどのような値を使うべきですか?

さまざまな例で提案されたさまざまなオプションをすべて確認しました。

  • WantedBy=timers.target
  • WantedBy =マルチユーザー。ターゲット
  • WantedBy=basic.target
  • WantedBy=default.target
  • WantedBy=mytimer.target(ユーザー定義名)

しかし、私が見つけた例ではこれ以上の説明はありませんでした。

次のページでは WantedBy の説明も提供しません。

cronジョブの代わりにシステムタイマーを作成する必要があるときに使用できる簡単な方法を知りたいです。

*クローンジョブを設定するには1行だけが必要です。 Systemd タイマーには、2 つのファイルを作成し、1 つまたは 2 つの systemctl コマンドを実行するジョブが含まれます。しかし、私の経験によると、これはシステムタイマーがcronよりも難しい理由ではありません。オプションが多く、完全に説明できる明確な文書と簡単な例が不足しているようです。

ベストアンサー1

簡単なユースケースでは、WantedBy=timers.target.seeを使用してください。man systemd.special:

timers.target

すべてのタイマーユニットの特殊ターゲットユニットを設定します(参照: systemd.timer(5)詳細については)このオプションは起動後に有効にする必要があります。

Wants=アプリケーションにインストールされているタイマーデバイスをそのデバイスの依存関係を介してインポートすることをお勧めします。これは、WantedBy=timers.targetタイマーデバイスのセクションセクションを通して[Install]設定するのが最善です。

デフォルトでは、タイマーには依存関係がありますBefore=timers.target。そして確認してみるとman bootup、依存関係で導入されたことがわかりますbasic.targettimers.targetだからほとんどの場合(後ろにある、一般的に、または、両方)うまくWantedBy=basic.target動作するようです。しかし:default.targetmulti-user.targetgraphical.targetbasic.target

timers.target非同期にインポートしますbasic.target。これにより、タイマーデバイスは起動後にのみ利用可能なサービスに依存できます。

timers.targetしたがって、他のサービスユニットに依存するよりも、他のサービスユニットのより複雑なタイマーに依存する方が良いです。

おすすめ記事