systemdサービスが重複する実行をスキップします。

systemdサービスが重複する実行をスキップします。

Oracle Linux Server 7.7でsystemdを使用してサービスをスケジュールしようとしています。

ユースケースは簡単です。タイマーは毎時間(午後2時から午前9時まで)サービスを実行する必要があります。プログラムがまだ実行されていない場合のみ。渡すこの回答、私はこれがデフォルトだと思いました。

だから予想するする:

  • 2:00: タイマーがサービスを開始 - サービスが実行を開始します。今回は90分間実行されるとします。
  • 3:00: まだサービスが稼働しているので、今回は何もしないでください
  • 4:00:3時30分ごろサービスが完了し、再びサービスが開始されます。現在20分間サービスが行われます。
  • 5:00: タイマーがサービスを再開します。
  • ...

しかし、現在の結果例:

  • 2:00: タイマーがサービスを開始 - サービスが実行を開始します。今回は90分間実行されるとします。
  • 3:00: サービスは引き続き実行されているため、何も実行されません。
  • 3:30: サービスが完了し、すぐに再起動します。
  • ...

誰でもこの問題を解決するのに役立ちますか?

とても感謝しています!


私のタイマー:

[Unit]
Description=Run service between 02-21 (inclusive) every hour

[Timer]
# the 02..21 syntax didn't work on this distribution, but I am open to suggestions to simplify it :) 
OnCalendar=*-*-* 02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21:00:00
Unit=test-service.service

[Install]
WantedBy=timers.target

私のサービス:

[Unit]
Description=Service for testing purposes

[Service]
WorkingDirectory=/opt/apps/long-running-service
ExecStart=/opt/apps/long-running-service
Restart=no
KillSignal=SIGINT

[Install]
WantedBy=multi-user.target

ベストアンサー1

おすすめ記事