In a previous post, I talked about using systemd to schedule jobs, specifically, in my case, running a Teams bot and a dependency checker called Renovate. There’s more to explore here with regards to systemd, and I think it might be worth thinking about some of these things more carefully.
First of all, systemd runs on most linux distributions, so it may be already at hand for you. Moreover, it does a lot of things. If you want a demonstration of this, try running systemd-related commands with the --help flag: the output is usually hilariously, almost unhelpfully long.
But it’s not inscrutable. For example, by setting up some minimal .service and .timer files, you will be well on your way toward setting up and configuring your own scheduled jobs. The syntax for those files, while initially unfamiliar to me, was not particularly difficult. There are, nonetheless, important permissioning questions to consider: what access do you want that specific job to have, anyhow? And there are error handling and notification issues: what do you want it to do if a job fails? How should it tell you? There is also much broader world of systemd functionality that I am ignoring here, but this is a starting point.
I am still working through some of these questions, but I’m optimistic that in the near future I’ll have a robust setup for scheduled jobs.

