systemd 타이머는 트리거를 표시하지 않으며 반복하지 않습니다.

systemd 타이머는 트리거를 표시하지 않으며 반복하지 않습니다.

설명된 대로GoAccess 1.4 자세한 튜토리얼, goa-daily.timer를 만들었습니다.

[Unit]
Description=Daily update of GoAccess reports

[Timer]
# Every day @ 3 O'clock
OnCalendar=*-*-* 03:00:00
RandomizedDelaySec=7200
Persistent=true
Unit=goa-daily.service

[Install]
WantedBy=timers.target

옵션 을 어떻게 정의하든 OnCalendar타이머 상태를 확인하면 항상 하나가 있고 Trigger: n/a다른 모든 타이머에는 트리거가 있습니다.

root@scw:/etc/systemd/system/timers.target.wants# ll
total 0
lrwxrwxrwx 1 root root 35 sep 28  2020 apt-daily.timer -> /lib/systemd/system/apt-daily.timer
lrwxrwxrwx 1 root root 43 sep 28  2020 apt-daily-upgrade.timer -> /lib/systemd/system/apt-daily-upgrade.timer
lrwxrwxrwx 1 root root 33 nov 30  2020 certbot.timer -> /lib/systemd/system/certbot.timer
lrwxrwxrwx 1 root root 35 fév 23 23:01 goa-daily.timer -> /etc/systemd/system/goa-daily.timer
lrwxrwxrwx 1 root root 35 sep 28  2020 logrotate.timer -> /lib/systemd/system/logrotate.timer
lrwxrwxrwx 1 root root 32 sep 28  2020 man-db.timer -> /lib/systemd/system/man-db.timer

root@scw:/etc/systemd/system/timers.target.wants# systemctl status goa-daily.timer 
● goa-daily.timer - Daily update of GoAccess reports
   Loaded: loaded (/etc/systemd/system/goa-daily.timer; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2022-01-31 15:43:42 UTC; 3 weeks 2 days ago
  Trigger: n/a

Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
root@scw:/etc/systemd/system/timers.target.wants# systemctl status logrotate.timer 
● logrotate.timer - Daily rotation of log files
   Loaded: loaded (/lib/systemd/system/logrotate.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Tue 2022-01-04 08:00:34 UTC; 1 months 20 days ago
  Trigger: Thu 2022-02-24 00:00:00 UTC; 49min left
     Docs: man:logrotate(8)
           man:logrotate.conf(5)

내 타이머에 트리거가 표시되지 않는 이유는 무엇입니까? 활성화했습니다. systemctl enable --now goa-daily.timer 트리거를 사용하여 타이머를 실행하려면 또 무엇을 해야 합니까? 저는 Debian 10(buster)을 사용하고 있습니다.

goa-daily.service 상태

# systemctl status goa-daily.service
● goa-daily.service - Application
   Loaded: loaded (/etc/systemd/system/goa-daily.service; enabled; vendor preset: enabled)
   Active: active (exited) since Mon 2022-01-31 16:08:54 UTC; 3 weeks 2 days ago
 Main PID: 17337 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 2347)
   Memory: 0B
   CGroup: /system.slice/goa-daily.service

감사해요@퍼지 드로잉코멘트, 이것이 daemon-reload타이머 변경에 영향을 미치지 않는 것으로 나타났습니다. stop타이머에 start트리거가 추가되었습니다!

# systemctl stop goa-daily.timer 
# systemctl start goa-daily.timer 
# systemctl status goa-daily.timer 
● goa-daily.timer - Daily update of GoAccess reports
   Loaded: loaded (/etc/systemd/system/goa-daily.timer; enabled; vendor preset: enabled)
   Active: active (waiting) since Thu 2022-02-24 08:51:34 UTC; 4s ago
  Trigger: Thu 2022-02-24 08:54:00 UTC; 2min 21s left

그러나 타이머를 실행한 후 상태에는 하나/하나의 트리거가 표시됩니다., 최소한 OnCalendar 날짜/시간 정의가 있어야 합니다(예 OnCalendar=*-*-* 08:54:00: .

# systemctl status goa-daily.timer 
● goa-daily.timer - Daily update of GoAccess reports
   Loaded: loaded (/etc/systemd/system/goa-daily.timer; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2022-02-24 08:51:34 UTC; 2min 30s ago
  Trigger: n/a

내가 무엇을 놓치고 있어서 매일 반복되는 걸까요? ? ? 일일옵션으로 테스트해보고 내일 다시 확인해보겠습니다...

답변1

서비스 표시에서 상태는 활성입니다. 귀하의 타이머가 실행 중인 서비스 장치를 트리거하지 않는 것 같습니다. 시스템에 알려지지 않은 어떤 이유로 서비스 단위가 실패했거나 서비스 단위가 종료된 후에도 활성 상태를 유지하도록 코딩되었을 수 있습니다.

관련 정보