시작 시 서비스를 실행하지만 일주일에 한 번 이하로 실행하는 타이머를 만들 수 있습니까?
내 경우에는 부팅 시 SSD 디스크에 TRIM()을 실행해 놓는 것이 도움이 됐는데 fstrim
, 일단 그렇게 되면 그날 시스템을 몇 번 재부팅할까봐 일주일 정도 기다려보고 싶었다.
내부 논리는 시작 시 타이머가 마지막 실행 시간을 확인하고 마지막 실행 시간이 지난 7일 이내에 발생하면 타이머를 실행하거나 마지막 실행 시간을 업데이트하지 않는다는 것입니다.
답변1
다음 타이머 파일의 출처는 다음과 같습니다.여기, 그러나 이는 기본적으로 많은 시스템에서 기본값입니다. 시스템에 실제로 하나가 포함되어 있을 수도 있고, 아래에 있을 수도 있습니다 /lib/systemd/system/fstrim.timer
. 또는 확인하실 수 있습니다.systemctl status fstrim.timer
fstrim.timer
[Unit]
Description=Discard unused blocks once a week
Documentation=man:fstrim
[Timer]
OnCalendar=weekly
AccuracySec=1h
Persistent=true
[Install]
WantedBy=timers.target
컴퓨터를 계속 실행하면 일주일에 한 번 실행됩니다. 마지막으로 실행한 시간을 놓친 경우(1주일 이상 후에 다시 켜면) 즉시 실행됩니다(참조아치스 위키: 실시간 타이머):
활성화 후 마지막 부팅 시간이 누락된 경우(예: 시스템 종료로 인해(옵션 지속=true) 서비스가 즉시 트리거됩니다.