this post was submitted on 04 Feb 2026
17 points (94.7% liked)

Linux Questions

3904 readers
1 users here now

Linux questions Rules (in addition of the Lemmy.zip rules)

Tips for giving and receiving help

Any rule violations will result in disciplinary actions

founded 2 years ago
MODERATORS
 

I am trying to create some systemd units that are supposed to start scripts at certain intervals. With Cron, I used an expression like 0 3 */7 * * to start a job every 7 days at 3 a.m. That worked great. With OnCalendar, I have no idea how to implement "every 7 days". Or can I use OnUnitActiveSec here? Additional problem: The computer is not always on at the specified time. The job should therefore be repeated as soon as the computer is available again. I have set Persistent=true for this purpose. However, I suspect that OnUnitActiveSec is reset every time I restart the computer. Or does OnUnitActiveSec refer to the time when the unit was activated with systemctl enabled test.timer?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] HelloRoot@lemy.lol 4 points 2 months ago* (last edited 2 months ago) (3 children)

OnCalendar is calendar-based, not interval-based.

Use a monotonic timer with OnUnitActiveSec=7d plus Persistent=true . This is not quite the same as your cron, because it can drift the day of ghe weak.

And no, it does not reset just because you reboot.

[โ€“] MoLoPoLY@discuss.tchncs.de 3 points 2 months ago

Shifting the day of the week is totally fine, since i only care about days between the job executions. Many thx, then i try my luck with this.

load more comments (2 replies)