同じテンプレートのシステムタイマーインスタンスが並行して実行されていないことを確認してください。

同じテンプレートのシステムタイマーインスタンスが並行して実行されていないことを確認してください。

[email protected]システムタイマーテンプレートとそのサービスがあります[email protected]。これは毎日行われ、RandomizedDelaySec時間は2時間で十分です。この作品には多くの例があります。

テンプレートのすべてのインスタンスを並列に実行しないようにsystemdに指示できますか?

このようなタスクはネットワーク負荷が高い。並行して実行すると速度が遅くなるため、タスクを時間通りに実行するよりもすばやく完了することが重要です。

[email protected]またはConflicts=job@*.timer動作しません。

[email protected]:

[Unit]
Description=Run network intensive script for %i

[Timer]
OnCalendar=daily
RandomizedDelaySec=2h
Persistent=true

[Install]
WantedBy=timers.target

[email protected]:

[Unit]
Description=Run network intensive script for %i

[Service]
Type=oneshot
ExecStart=/my/fancy/script.sh %i

ベストアンサー1

サービスユニットに明示的なロックを追加することでこの問題を解決できます。

[Service]
Type=oneshot
ExecStart=/usr/bin/flock -F /path/to/some/lockfile /my/fancy/script.sh %i

これにより、一度に1つのスクリプトインスタンスのみを実行でき、他のインスタンスはスクリプトが完了するまでブロックされます。

おすすめ記事