機械翻訳について

6 systemdタイマーの使用

systemdのタイマー・ユニット・ファイルを使用して、同じ目的でcrontabおよびその他のcronジョブを使用するcronユーティリティと同様の方法でタスクをスケジュールします。

特定のサービスを使用してシステム内で機能するパッケージには、独自のsystemdタイマー・ユニット・ファイルが含まれます。 これらのパッケージがOracle Linux 8にインストールされると、タイマー・ユニット・ファイルが自動的に含まれます。 アクティブなタイマー・ユニット・ファイルを表示するには、次のコマンドを実行します:

systemctl list-unit-files --type=timer

ノート:

タイマー・ファイルのリストは、Oracle Cloud Infrastructureインスタンスや物理システムなど、Oracle Linux 8が実行されている場所によって異なります。

各タイマー・ユニット・ファイルには、タスクのスケジュールを管理するパラメータ設定が含まれています。 たとえば、dnf-makecache.serviceを実行するスケジュールは、dnf-makecache.timerファイル内で設定されます。 そのファイルの内容を確認するには、次のコマンドを実行します:

systemctl cat dnf-makecache.timer
# /usr/lib/systemd/system/dnf-makecache.timer
[Unit]
Description=dnf makecache --timer
ConditionKernelCommandLine=!rd.live.image
# See comment in dnf-makecache.service
ConditionPathExists=!/run/ostree-booted
Wants=network-online.target

[Timer]
OnBootSec=10min
OnUnitInactiveSec=1h
RandomizedDelaySec=60m
Unit=dnf-makecache.service

[Install]
WantedBy=timers.target

スケジュール情報は、[Timer]セクションで指定します。 この構成例では、dnf-makecache.serviceサービスが、システムがブートされた10分後に自動実行されるように設定されています。 このサービスは、その後、OnUnitInactiveSecパラメータで指定されているとおり、1時間の間、アイドル・モードになります。 この時間が終了すると、このサービスが再度実行されます。 このサイクルは無期限に続き、1時間ごとに起こります。

RandomizedDelaySec設定では、実行をそのスケジュールよりどのくらい遅らせることができるかの上限値を指定します。 この例では、このサービスの実行は、遅くともそのスケジュールの1分後まで許可されています。 このパラメータは、指定したスケジュールで同時に開始されるジョブが多くなりすぎないようにするために役立ちます。そのようにしないと、リソースが過負荷になる可能性があります。

OnCalendarも、タスク・スケジューリングのための有用なパラメータです。 このパラメータが次のように設定されているとします。

OnCalendar=*:00/10

*:00により毎正時を表し、/10という設定により10分を表しています。 したがって、このジョブは、毎正時の10分後に、1時間ごとに実行されるように設定されます。

ジョブのスケジューリングのためのsystemdタイマー・ユニット・ファイルのパラメータをすべて示すリストは、systemd.timer(5)のマニュアル・ページを参照してください。

systemdOracle Linux 8システムの使用の詳細は、「Oracle Linux 8: systemdを使用したシステムの管理」を参照してください。