42
submitted 1 year ago by PrivateOnions@lemmy.ml to c/linux@lemmy.ml

I am on Mint XFCE and Redshift is just so inconsistent and I have tried its forks, also inconsistent. So instead I have been using sct in the terminal to adjust the temperature, and have set a command that resets it back to normal every time that I log on. However, I was wondering if there is a way to make it so that "sct 2750" runs every day at 10 pm or during a specific period of time.

you are viewing a single comment's thread
view the rest of the comments
[-] Dirk@lemmy.ml 34 points 1 year ago* (last edited 1 year ago)

People suggesting legacy methods like cron, but the only valid answer for modern Linux distributions is to use a systemd timer in userspace.

You just set up a service (what should be done and how do you want it to be done) and a timer (when should it be done).

https://gist.github.com/oprypin/0f0c3479ab53e00988b52919e5d7c144

[-] the_sisko@startrek.website 20 points 1 year ago

Cron may be old but I don't think it's "legacy" or invalid. There's plenty of perfectly good, modern implementations. The interface is well established, and it's quite simple to schedule something and check it. What's more, Cron works on new Linux systems, older non-systemd ones, and BSD and others. If all you need is a command run on a schedule, then Cron is a great tool for the job.

Systemd services and timers require you to read quite a bit more documentation to understand what you're doing. But of course you get more power and flexibility as a result.

[-] Dirk@lemmy.ml 7 points 1 year ago

Systemd services and timers require you to read quite a bit more documentation to understand what you’re doing. But of course you get more power and flexibility as a result.

Yes. There is simply no reason not to make it state-of-the-art from the beginning on. You get proper logging, proper error handling, better scheduling options and you most likely don't even need to set up additional software because systemd (and thus systemd timers) are default in pretty much all common Linux distributions (except some niche ones) since 10+ years.

[-] jsveiga@sh.itjust.works 9 points 1 year ago

"simply no reason"?

What about ease of use, simplicity, faster to quickly setup, backwards compatibility, and "crobtab is where everyone will look at when looking for a scheduled task"?

If systemd was implemented right, it would create the systemd files and autoconfigure default tasks by reading the crontab, for backwards compatibility.

[-] Ullebe1@lemmy.ml 1 points 1 year ago

What about ease of use, simplicity, faster to quickly setup, backwards compatibility,

The syntax of systemd timers is MUCH easier to read for newbies (and everyone else, really) as it uses words instead the placement of the characters on the line to convey meaning. If you can't remember or don't know the syntax well you can still understand a systemd timer, but that is much hard for the crontab. Granted, crontab uses fewer characters, but if you only set up either once in a blue moon you'll need the docs to write either for a long time. And is backwards compatibility really an issue with either one? All major desktop and server distros use systemd, and has for a while. Fedora doesn't even include a Cron by default anymore.

"crobtab is where everyone will look at when looking for a scheduled task"?

If it was a distro release from the last decade I'd definitely start by checking the systemd timers, rather than the crontab.

If systemd was implemented right, it would create the systemd files and autoconfigure default tasks by reading the crontab, for backwards compatibility.

You can to totally do this, using this systemd generator.

[-] the_sisko@startrek.website 2 points 1 year ago* (last edited 1 year ago)

If you can’t remember or don’t know the syntax well you can still understand a systemd timer, but that is much hard for the crontab.

I will agree that it is easier to read a timer than a Cron entry, especially if you've seen neither of them before.

Granted, crontab uses fewer characters, but if you only set up either once in a blue moon you’ll need the docs to write either for a long time.

This is where I disagree. I very rarely setup a Cron job, but when I do, I don't need to look anywhere for docs. I run crontab -e and the first line of the editor contains a comment which annotates each column of the Cron entry (minute, hour, dom, mon, dow). All that's left is to put in the matching expressions, and paste my command.

Compare that to creating a new timer, where I need to Google a template .service and .timer file, and then figure out what to put in what fields from the docs. That's probably available in the manual pages, but I don't know which one. It's just not worth it unless I need the extra power from systemd.

This is from somebody who has several systemd timers and also a few Cron jobs. I'm not a hater, just a person choosing the best and easiest choice for the job.

load more comments (16 replies)
this post was submitted on 13 Jul 2023
42 points (100.0% liked)

Linux

48210 readers
653 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS