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

관련 정보