systemd 타이머는 8시간마다 실행됩니다.

systemd 타이머는 8시간마다 실행됩니다.

저는 systemd 타이머를 처음 사용하는데 몇 가지 문제가 있습니다.

매일, 8시간마다, 오전 6시, 오후 2시, 오후 10시에 스크립트가 실행되도록 예약하려고 합니다. 시간이 올바르게 시작되고 다음 예정된 실행 시간이 표시되지만(그렇습니다) 세 번째(또는 다른) 시간에는 실행되지 않는 것 같습니다. 내가 뭘 잘못했나요?

내 타이머에는 다음이 있습니다.

[Unit]
Description=Run every 8 hours
Requires=script.service

[Timer]
OnCalendar=*-*-* 03,11,19:00:00
Persistent=true

[Install]
WantedBy=timers.target

나는 또한 이것을 시도했습니다 :

[Unit]
Description=Run every 8 hours
Requires=script.service

[Timer]
OnCalendar=*-*-* 03,11,19:00:00
OnUnitActiveSec=1d
Persistent=true

[Install]
WantedBy=timers.target

이:

[Unit]
Description=Run every 8 hours
Requires=script.service

[Timer]
OnCalendar=*-*-* 03:00:00
OnCalendar=*-*-* 11:00:00
OnCalendar=*-*-* 19:00:00
Persistent=true

[Install]
WantedBy=timers.target

제공하다:

[Unit]
Description=Renews Kerberos ticket every 8 hours
After=network-online.target firewalld.service
Wants=network-online.target script.timer

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=/usr/bin/kdestroy
ExecStart=/usr/bin/kinit -R -V [email protected] -k -t /etc/krb5.keytab
IOSchedulingClass=best-effort

[Install]
WantedBy=default.target
'''

답변1

알았어, 내 생각엔 문제는스크립트 서비스문서. systemd.timer매뉴얼 페이지 에 따르면 :

DESCRIPTION
       Note that in case the unit to activate is already active at the time the timer elapses it is not restarted, but simply left running. There is no concept of spawning new service instances in this case. Due to this, services
       with RemainAfterExit= set (which stay around continuously even after the service's main process exited) are usually not suitable for activation via repetitive timers, as they will only be activated once, and then stay
       around forever.

라인을 제거 RemainAfterExit=하면 갈 수 있습니다.

관련 정보