시스템 타이머가 놓친 이벤트를 실행하지 못하도록 방지하세요.

시스템 타이머가 놓친 이벤트를 실행하지 못하도록 방지하세요.

여기에 게시된 솔루션을 시도한 후(시작 시 시스템 타이머가 실행되지 않도록 방지), 시스템 타이머 문제가 해결된 것으로 생각했습니다. 그러나 마지막 재부팅 후 부팅 중에 서비스가 시작되었습니다(누락된 이벤트를 보충한 것으로 보입니다).

문제의 파일은 다음과 같습니다.

btrfs_backup.timer

[Unit]
Description=Create mirror of current state of all BTRFS snapshots
Requires=btrfs_backup.service

[Timer]
# hourly, with a 5-minute delay, as to not interfere with the
# snapper-timeline.service.
Unit=btrfs_backup.service
OnCalendar=*-*-* *:05:00
Persistent=false

[Install]
WantedBy=timers.target

btrfs_backup.service

[Unit]
Description=Create mirror of current state of all BTRFS snapshots
Wants=btrfs_backup.timer

[Service]
Type=oneshot
ExecStart=/usr/local/sbin/btrfs_backup
Environment="DISPLAY=:0.0"
Environment="XDG_RUNTIME_DIR=/run/user/0"

기본적으로 snapper의 타임라인 시스템 파일에서 이 (2) 파일을 복사했기 때문에 이 설정이 작동하지 않는 이유를 이해할 수 없습니다. 타이머에서 [설치] 부분을 제거하자는 제안도 살펴봤지만,모든내 시스템(스냅퍼 시스템 포함)의 타이머에는 [설치] 섹션이 있습니다.

다른 모든 것은 잘 실행됩니다. 서비스가 올바르게 완료되고 바탕 화면에 알림이 표시됩니다.

업데이트 #1: 문제의 사건과 관련된 지난 몇 시간 동안의 기록 항목:

Mar 01 14:05:09 dss-mint systemd[1]: Starting Create mirror of current state of all BTRFS snapshots...
Mar 01 14:05:09 dss-mint systemd[1]: btrfs_backup.service: Succeeded.
Mar 01 14:05:09 dss-mint systemd[1]: Finished Create mirror of current state of all BTRFS snapshots.
Mar 01 15:05:09 dss-mint systemd[1]: Starting Create mirror of current state of all BTRFS snapshots...
Mar 01 15:05:09 dss-mint systemd[1]: btrfs_backup.service: Succeeded.
Mar 01 15:05:09 dss-mint systemd[1]: Finished Create mirror of current state of all BTRFS snapshots.
Mar 01 16:05:09 dss-mint systemd[1]: Starting Create mirror of current state of all BTRFS snapshots...
Mar 01 16:05:09 dss-mint systemd[1]: btrfs_backup.service: Succeeded.
Mar 01 16:05:09 dss-mint systemd[1]: Finished Create mirror of current state of all BTRFS snapshots.
-- Reboot --
Mar 01 17:24:01 dss-mint systemd[1]: Starting Create mirror of current state of all BTRFS snapshots...
Mar 01 17:24:01 dss-mint systemd[1]: btrfs_backup.service: Succeeded.
Mar 01 17:24:01 dss-mint systemd[1]: Finished Create mirror of current state of all BTRFS snapshots.
Mar 01 18:05:19 dss-mint systemd[1]: Starting Create mirror of current state of all BTRFS snapshots...
Mar 01 18:05:19 dss-mint systemd[1]: btrfs_backup.service: Succeeded.
Mar 01 18:05:19 dss-mint systemd[1]: Finished Create mirror of current state of all BTRFS snapshots.

업데이트 #2: 좋습니다. 오늘 아침에 컴퓨터를 켰습니다. 시작이 완료된 직후 서비스가 실행 중이었지만 타이머가 실행되지 않았습니다.

$ ls-timers
NEXT                        LEFT          LAST                        PASSED       UNIT                         ACTIVATES                     
Tue 2021-03-02 08:43:16 PST 12min left    n/a                         n/a          systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Tue 2021-03-02 09:00:00 PST 29min left    n/a                         n/a          snapper-timeline.timer       snapper-timeline.service      
Tue 2021-03-02 09:01:57 PST 31min left    n/a                         n/a          btrfs_backup.timer           btrfs_backup.service          
Tue 2021-03-02 11:17:38 PST 2h 46min left Mon 2021-03-01 19:30:22 PST 13h ago      fwupd-refresh.timer          fwupd-refresh.service         
Tue 2021-03-02 16:53:23 PST 8h left       Mon 2021-03-01 12:52:17 PST 19h ago      motd-news.timer              motd-news.service             
Wed 2021-03-03 00:00:00 PST 15h left      Tue 2021-03-02 08:28:52 PST 1min 53s ago logrotate.timer              logrotate.service             
Wed 2021-03-03 00:00:00 PST 15h left      Tue 2021-03-02 08:28:52 PST 1min 53s ago man-db.timer                 man-db.service                
Sun 2021-03-07 03:10:21 PST 4 days left   Sun 2021-02-28 08:27:47 PST 2 days ago   e2scrub_all.timer            e2scrub_all.service           
Mon 2021-03-08 00:00:00 PST 5 days left   Mon 2021-03-01 08:33:26 PST 23h ago      fstrim.timer                 fstrim.service                
n/a                         n/a           Tue 2021-03-02 08:30:06 PST 39s ago      anacron.timer                anacron.service               
n/a                         n/a           Tue 2021-03-02 08:28:52 PST 1min 53s ago snapper-boot.timer           snapper-boot.service

이해가 되지 않습니다. 서비스를 활성화한 적이 없으므로 타이머에 의해서만 트리거됩니다.

$ systemctl status btrfs_backup.service
● btrfs_backup.service - Create mirror of current state of all BTRFS snapshots
     Loaded: loaded (/etc/systemd/system/btrfs_backup.service; static; vendor preset: enabled)
     Active: inactive (dead) since Tue 2021-03-02 08:35:24 PST; 1min 8s ago
TriggeredBy: ● btrfs_backup.timer
    Process: 1206 ExecStart=/usr/local/sbin/btrfs_backup (code=exited, status=0/SUCCESS)
   Main PID: 1206 (code=exited, status=0/SUCCESS)

답변1

Requires=btrfs_backup.service타이머를 해제해 보세요 .

이것systemd.unit(5) 매뉴얼 페이지Requires=요구 사항도 활성화될 것이라고 말합니다 . 따라서 활성화 타이머가 요청을 활성화합니다 btrfs_backup.service.

관련 정보