On Saturday, August 22, 2015 10:17:04 PM allan gottlieb wrote: > On Sat, Aug 22 2015, Marc Joliet wrote: > > > Am Sat, 22 Aug 2015 17:15:38 -0400 > > schrieb Fernando Rodriguez <[email protected]>: > > > >> On Saturday, August 22, 2015 4:52:47 PM allan gottlieb wrote: > >> > I use systemd and wish to employ timers an analogue of cron.daily. The > >> system is a laptop that is normally turned off each evening. > >> > > >> > As I read the manuals one can have either a monotone or a realtime timer. > >> But I seem to need features of each. > >> > > >> > Specifically, I would like the daily timer to trigger 10 minutes > >> > (say) after > >> boot (OnBootSec=600) but not more than once a day (OnCalendar=daily). > >> > The manual and several wiki pages suggest that you can't mix monotone and > >> realtime options. > >> > > >> > Am I misreading the manual (and mixing is permitted) or is there a way to > >> achieve my goals with just monotone or just realtime options. > >> > >> I think so, this is what systemd.timer(5) says: > >> > >> Multiple directives may be combined of the same and of different types. For > >> example, by > >> combining OnBootSec= and OnUnitActiveSec=, it is possible to define a timer > >> that elapses in > >> regular intervals and activates a specific service each time. > >> > >> There's also sys-process/systemd-cron that works like a regular cron > >> and seems > >> to work fine for me but I haven't tested it depth. > > > > Right, I have one timer that, for example, uses: > > > > [Timer] > > OnBootSec=10m > > OnUnitInactiveSec=1h > > Those are both monotone options so definitely can be combined. > > I want daily so would have > > [Timer] > OnBootSec=10 minutes > OnUnitInactiveSec=1d > > However If I boot the machine at 9am, turn it off at 10am, > and boot again at 11am, won't the timer fire twice? I thought for > monotone timers the time starts anew a the next boot? > > thanks, > allan >
Sorry I'm not sure, it says the semantics are the same so I assume that means they can be mixed but I'm unclear if they run twice in that case. I guess you can just set it to a short interval, wait for it to run, then reboot and see what happens (and let us know the result :). If you use OnCalendar with Persistent=true it should run no more than once a day though, but it'll run right away on boot if you miss it one day. If you just want to replace cron my advice is install systemd-cron, it has the advantage that it'll satisfy any dependencies on cron. If you don't want to install it you can still download it and see how they did it. -- Fernando Rodriguez

