systemd 타이머 유닛이 RHEL7과 RHEL8에서 다르게 동작함
Issue
- 동일한 유닛 파일을 사용하더라도 RHEL7과 RHEL8에서
systemd타이머 유닛의 동작이 다릅니다. -
이 예에서 타이머 유닛은 서비스 장치 파일을 통해 분 마다 셸 스크립트를 실행하도록 구성됩니다. 쉘 스크립트는 90초 동안 대기하며 logger 명령을 실행합니다.
-
RHEL7(
systemd-208-20.el7)에서는 스크립트가 매분 00초마다 시작되어 90초 동안 대기하는 것으로 보이므로 다음 실행이 건너뛰어지는 것처럼 보입니다.
아래 예에서7월 5일 02:28:00과7월 5일 02:30:00의 실행은 건너뛰어지는 것처럼 보입니다.Jul 5 02:27:00 rhel7u1 systemd: Starting timertest... Jul 5 02:27:00 rhel7u1 logger[19354]: timertest start Jul 5 02:28:30 rhel7u1 logger[19356]: timertest end Jul 5 02:28:30 rhel7u1 systemd: Started timertest. Jul 5 02:29:00 rhel7u1 systemd: Starting timertest... Jul 5 02:29:00 rhel7u1 logger[19362]: timertest start Jul 5 02:30:30 rhel7u1 logger[19363]: timertest end Jul 5 02:30:30 rhel7u1 systemd: Started timertest. Jul 5 02:31:00 rhel7u1 systemd: Starting timertest... Jul 5 02:31:00 rhel7u1 logger[19369]: timertest start Jul 5 02:32:30 rhel7u1 logger[19370]: timertest end -
하지만 RHEL8(
systemd-239-29.el8)에서는 이전 실행이 끝난 직후에 다음 실행이 시작되는 것처럼 보입니다.
아래 예에서 실행은7월 5일 03:14:40에 종료되었고 다음 실행은7월 5일 03:14:41에 시작되었습니다.Jul 5 03:13:10 rhel8u1 systemd[1]: Starting timertest... Jul 5 03:13:10 rhel8u1 root[5218]: timertest start Jul 5 03:14:40 rhel8u1 root[5257]: timertest end <<<=== Jul 5 03:14:41 rhel8u1 systemd[1]: Started timertest. <<<=== Jul 5 03:14:41 rhel8u1 systemd[1]: Starting timertest... <<<=== Jul 5 03:14:41 rhel8u1 root[5264]: timertest start <<<=== Jul 5 03:16:11 rhel8u1 root[5302]: timertest end Jul 5 03:16:11 rhel8u1 systemd[1]: Started timertest. Jul 5 03:16:11 rhel8u1 systemd[1]: Starting timertest... Jul 5 03:16:11 rhel8u1 root[5309]: timertest start -
이런 행동이 예상된 것인가요?
Environment
- RHEL7
systemd-208-20.el7
- RHEL8
systemd-239-29.el8
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.