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