What are some significant differences to expect when switching to an alternative, and can that affect gaming compatibility and performance?
What are some significant differences to expect when switching to an alternative, and can that affect gaming compatibility and performance?
As someone who’s created a timer, cron is much more straightforward.
Systemd has its good points, but most of that is the core functionality as a sysvinit replacement in my opinion. And it’s entirely likely that at least one of the newer alternatives is a better option for that.
I think if you know cron from the start it can be easier, but it gets really annoying really fast.
Compare:
0 0 * * * /usr/bin/flock -n /tmp/myjob.lock bash -c 'sleep $((RANDOM % 3600)) && /usr/local/bin/myjob.sh'To:
[Timer] OnCalendar=daily RandomizedDelaySec=1hThat and things like systemd preventing overlapped delays, handing what to do if the system was down during the last cycle, built in logging and event tracking. Seeing successful vs non successful runs etc.
Once you add in those production requirements cron gets annoying fast and timers are easy.
For adding a quick thing to make something happen at a specific time, I can add a cron job in a couple of minutes. To add a timer takes creating a couple of files with syntax that took me a while to look up last time I needed it, and running a command. Then debugging. Sure, the timer has benefits, but cron jobs are still simpler.
On the bright side, there’s actually a “crontab -t” command that apparently can be used to generate timer files from a crontab line, which I hadn’t known of before today.
That’s because you know cron. If you knew timers equally as well they would be easier. And they let you handle the edge cases (retry, randomness, tracking, logs etc) without the need for a custom script.
Once you factor in the production edge cases I think timers are clearly easier. You get all of it for free.
As someone who didn’t know anything about either a short time ago, I found cron easier to learn and use. Systemd timers look more visually clean, but the way cron works is more simple and straightforward.
I can see how for some people cron is more straightforward to learn, at least till you need to handle logging, checking for cron results, handling when the triggered event can’t happen that instance, ensuring only one instance of the triggered thing happens at once, adding time jitter, etc.
Then timers are way simpler. Timers let you create robust timed events for free. With cron you need to do all that yourself.
I can add the two files required to run a timer in systemd in a couple minutes, but writing the complex incantation to cron for having it do something that is the default in systemd is pure pain and takes me 3 hours of googling