Oh fuck. I’ll use this from now on. Except for if I won’t use it next week. Then I’ll forget about it because my memory is a damn sieve.
Use a systemd timer to send yourself a reminder. Discoverd them recently myself and honestly liking them more than cron.
Well, systemd developers made one of the classic blunders a software developer can do: make a program that has to deal with time and dates. Every time I have to deal with timestamps I’m like “oh shit, here we go again”.
Anyway, as I understood it the reason this is in systemd is because they wanted to replace cron, and it’s fine by me because cron has it’s own brain-hurt. (The cron syntax is something that always makes me squint real hard for a while.)
Yeah and they actually added some usability in the form of that utility helping you debug what you’re doing. Pretty nice!
I’m sorry but Cron is really easy, of all systems.
Try using systemd with an ssh server that you want to have running on a non standard port. On non systemd it’s a 15 second ordeal while on systemd I don’t even know where to start, I pushed it out of my memories. It’s something something create files here, restart demons there, removing other files, it is WAY WAY over complicated
What do you mean? You literally just change the
/etc/sshd
config to point at a different port do you not?Oh yeah, without systemd that’s all there is to it. With systemd, however, port management is taken out of the ssh config and is done how it was decades ago
I run systemd with a different sshd service port and that’s all I changed
.Aube it’s distro dependent, but Ubuntu updated ssh a while ago to be passed through systemd. Updating the port requires systemd configuration changes
Usually such things have a simple explanation. systemd does a lot with time and date, for example scheduling tasks. It’s quite obvious that it has this capabilities, when you think about it.
Usually such things have a simple explanation. systemd does a lot
with time and date, for example scheduling tasks. It’s quite obvious that it has this capabilities, when you think about it.FTFY
Not that that’s bad when it’s stuff like this
systemd is a great operating system, it just lacks a decent text editor.
Good thing it’s editor agnostic so everybody can do the right thing in the end and choose nano
Funny way to misspell vim
Micro anyone? :D
ed is the standard text editor.
Emacs, but I only use 'M-x butterfly C-M-c`
Enough people mention it that I’ve jumped over to helix
Eyy, helix mentioned! The only editor that can handle the 50k LoC files at work.
Finally we can put all the controversy around systemd to rest.
me: systemd is not that bloated
systemd:
You need a calendar and time handling anyways for logging purposes and to set timers correctly. It’s likely not that much extra work exposing that functionality.
No, UNIX philosophy demands that every single one of those things is one or more separate things and that half of them are poorly or not at all maintained. Just like God intended.
Finding the next super holiday is a core system feature I could survive without. 🎉
Well, date time stuff for a system working with timers and scheduling actions might be pretty useful…
Try scheduling a cron tab job to run a task on dates defined that way.
$ systemd-analyze calendar tomorrow Failed to parse calendar specification 'tomorrow': Invalid argument Hint: this expression is a valid timestamp. Use 'systemd-analyze timestamp "tomorrow"' instead? $ systemd-analyze timestamp tuesday Failed to parse "tuesday": Invalid argument Hint: this expression is a valid calendar specification. Use 'systemd-analyze calendar "tuesday"' instead?
ಠ_ಠ
$ for day in Mon Tue Wed Thu Fri Sat Sun; do TZ=UTC systemd-analyze calendar "$day 02-29"|tail -2; done Next elapse: Mon 2044-02-29 00:00:00 UTC From now: 19 years 4 months left Next elapse: Tue 2028-02-29 00:00:00 UTC From now: 3 years 4 months left Next elapse: Wed 2040-02-29 00:00:00 UTC From now: 15 years 4 months left Next elapse: Thu 2052-02-29 00:00:00 UTC From now: 27 years 4 months left Next elapse: Fri 2036-02-29 00:00:00 UTC From now: 11 years 4 months left Next elapse: Sat 2048-02-29 00:00:00 UTC From now: 23 years 4 months left Next elapse: Sun 2032-02-29 00:00:00 UTC From now: 7 years 4 months left
(It checks out.)
Surprisingly its calendar specification parser actually allows for 31 days in every month:
$ TZ=UTC systemd-analyze calendar '02-29' && echo OK || echo not OK Original form: 02-29 Normalized form: *-02-29 00:00:00 Next elapse: Tue 2028-02-29 00:00:00 UTC From now: 3 years 4 months left OK $ TZ=UTC systemd-analyze calendar '02-30' && echo OK || echo not OK Original form: 02-30 Normalized form: *-02-30 00:00:00 Next elapse: never OK $ TZ=UTC systemd-analyze calendar '02-31' && echo OK || echo not OK Original form: 02-31 Normalized form: *-02-31 00:00:00 Next elapse: never OK $ TZ=UTC systemd-analyze calendar '02-32' && echo OK || echo not OK Failed to parse calendar specification '02-32': Invalid argument not OK
It is literally happening this year.
24th is Tuesday. 1st of January is Wednesday and as a bonus Jan 6 is also a holiday in my country and that’s Monday.
So from dec 22 to jan 6 i can be home by using just 6 days off
In the UK, if Christmas or New Year falls on a weekend, a seperate equivalent holiday is made during the week to compensate.
This is true for all public holidays in the UK, there’s a (usually) fixed number of public holidays but the dates are flexible.
They’re also included in the minimum 28 days paid time off too, meaning if you’re a full time worker and have to work on a bank holiday your employer is legally required to offer an extra day off somewhere else instead, either a fixed date or added to your holiday allowance. Conversely, the “extra” day off you get when a monarch keels over may be subtracted from your holiday allowance for the year. This is also why my employer is allowed to follow English bank holidays despite having next to no presence in England; the number is fixed but the dates are not.
Wait, do other countries not do this? So if a public holiday falls on a Saturday it doesn’t get pushed to Monday?
Germany doesn’t do this, but the minimum, when all holidays fall on the worst possible days, is more than the number of holidays in the UK.
Netherlands doesn’t do this, and we have less holidays then UK haha
Awesome!
systemd is the future, and the future has been here for over a decade and yet old Unix and BSD purists still cry about it
I have one simple thing to say to the downvoters: I am not using a minicomputer from 1970, why should I be bound by the limits set then?
They are also still complaining about PulseAudio, despite Pipewire having mostly replaced it, while spending hours fiddling with ALSA to use their headphones.
Yeah, I’m also one of these people silently enjoying systemd and wayland. Every now and then there’s fuzz on one of these. I shrug, and move on still enjoying both of them.
I wouldn’t cry about it if it wasn’t so God awful to work with
That’s pretty clever.
Systemd ignored my calendar override for the builtin raid scanner, so every week my server would chug to a halt to scan the entire array.
In true systemd fashion, the documentation could not explain this behavior, so I had to make a full copy override instead of a merge override because reasons.
Did setting OnCalendar to the empty string not work? https://unix.stackexchange.com/a/479745
Thank you for this, I am dumb when it comes to config merge rules because I’ve screwed up ALSA the same way
How is Tuesday Christmas optimal?
For me if Christmas eve is a Monday we usually get the whole Monday off, if it’s later in the week we only get a half day. We get from Christmas eve 12 noon to January 1 off normally
This plays some kind of role in the debate of systemd being good or not. I’m not sure if goes in the good column or the bad column, but I know it goes into a column.
I am typically in the group saying “systemd is overlarge with too many responsibilities” but this capability makes perfect sense for its job running services. Probably the good column.
This kinda functionality is surprisingly apropos to a problem I have a work, I realize. And yet, I have k8s. More and more I am appreciating the niche systemd can play with pets instead of cattle and wished corps weren’t jumping to managed k8s and all of that complexity it entails immediately.
You can run systemd (or cron) inside a pod for scheduling and call the kubernetes API from there to run jobs and stuff. Not sure if this helps you, but it can be easy to overlook.
haha, yeah I am well aware I could do something like that. Unfortunately, once you start working for larger companies, your options for solutions to problems typically shrink dramatically and also need to fit into neat little boxes that someone else already drew. And our environment rules are so draconian, that we cannot use k8s to its fullest anyhow. Most of the people I work with have never actually touched k8s, much less any kind of server oriented UNIX. Thanks for the advice though.
I think it depends which side of the debate one is on?
God, I only have one question…
Why?
I bet it’s for timers
Did you know the next Friday the 13th is in December? ChatGPT didn’t know it. (I had to give it an extra date.now for it to figure it out)