
さまざまな例で提案されたさまざまなオプションをすべて確認しました。
- WantedBy=timers.target
- WantedBy =マルチユーザー。ターゲット
- WantedBy=basic.target
- WantedBy=default.target
- WantedBy=mytimer.target(ユーザー定義名)
しかし、私が見つけた例ではこれ以上の説明はありませんでした。
次のページでは WantedBy の説明も提供しません。
- https://www.freedesktop.org/software/systemd/man/systemd.timer.html
- https://www.freedesktop.org/software/systemd/man/systemd.time.html
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.target
。timers.target
だからほとんどの場合(後ろにある、一般的に、または、両方)うまくWantedBy=basic.target
動作するようです。しかし:default.target
multi-user.target
graphical.target
basic.target
timers.target
非同期にインポートしますbasic.target
。これにより、タイマーデバイスは起動後にのみ利用可能なサービスに依存できます。
timers.target
したがって、他のサービスユニットに依存するよりも、他のサービスユニットのより複雑なタイマーに依存する方が良いです。