Do scripts in /usr/lib/systemd/system-sleep/ not block? I’ve never had one fail to complete before suspend. I had to use one last year to dump debug stats before and after sleep while we were helping debug Cezanne sleep issues.
I guess not because in my attempts to get this working I did put a script there. Does * expansion not work in these scripts? Mind sharing your script if you still have one? I have 3 tabs open to learn systemd when I have time, I did watch a video so far :)
Does it really matter if you can’t use those independent binaries with any other init system? If you want to use systemd, you pretty much have to take the whole ecosystem.
You just compared a browser extension and an init system that takes proc id 1. The unix philosophy is about what runs as processes at the system level.
The unix philosophy is about what runs as processes at the system level.
I don’t know what you mean by “system level” (cat is userspace) but I don’t believe there is any clarification about what kind of applications should apply to the unix philosophy or not. It doesn’t say that applications “should do one thing and do it well only if it is a system process or terminal based program built for purely shell environments.”
Also, if the argument was exclusively about OS processes, dbus should be in the firing line of everyone in the anti-systemd camp too. That never gets the same level of hate.
The unix philosophy is old and, while nice to have, is insufficient to fully address the needs of the modern world. It’s not as simple today as it was in the 1960s and 70s and we need to embrace change to progress.
I’m honestly not sure what you’re talking about here. The unix philosophy is something informal that applies to compiled utilities that run usually in a bin/ directory. The philosophy isn’t attempting to apply to all software that exists and certainly doesn’t intend to apply to browsers or browser extensions.
You just compared a browser extension and an init system that takes proc id 1. The unix philosophy is about what runs as processes at the system level.
Btw. The Linux kernel does more than one thing. But monolithic kernels are much better for small student projects that won’t be relevant anymore, when Gnu Hurd comes out
Monolithic kernels are also generally more performant, compared to micro-kernels, it turns out. A bit counter-intuitive at first but, makes sense when you think about it.
Micro-kernels in general-purpose OSes suffer from a death of a thousand cuts due to context switching. Something that would be a single callback to the kernel in a monolith turns into a mess of calls bouncing between kernel and user space. When using something like an RTOS where hardware is not likely intended for general-purpose computing, this is not an issue but, when you start adding all of the complexity of user-installable applications that need storage, graphics, inputs, etc, the number of calls gets huge.
Binary logs are annoying, but once you get the hang of journalctl, it’s not so bad. That is about my only remaining hate for it.
In its early days, it was a serious pain. Its service management was annoying and is still a bit scattered to this day. It has improved a ton, for sure.
Above all else, it was kinda forced on us. Most of us were comfortable with sysv already. If I remember correctly, people often said the main dev for systemd could be a real jackass. I have no judgement or experience regarding that though.
Above all else, it was kinda forced on us. Most of us were comfortable with sysv already.
And at least for me it solved a problem which didn’t exist. Sure, there’s some advantages, but when it rolled out it was a huge pain in the rear and caused various problems and made things more complicated for no apparent reason.
Most of the bolted on services are rather shitty. ResolveD in particular is straight up hot garbage unless the only thing you are comparing it to is nscd. I like shipping all my logs to a centralized service and journald just gets in the way. It feels like they took upstart, bolted on some really crappy daemons,
Everything everybody else said plus everything with Systemd is just… more complex. With OpenRC, it felt like I could keep all the information I needed to use and administrate it in my head. With Systemd, I have to look stuff up all the time.
Wooow, 180 seconds (which probably won’t even get to timeout) when shutting down my computer. My life is ruined forever because I had to wait sooooo much. /sarc
Tell that to my laptop when I’m at the airport and boarding.
It’s the same with windows - push power button, “Windows is installing some updates, do not turn off y…” (screen goes blank from the forced shutdown as I continue to hold the power button)
If I’m turning off my computer, I’m turning it off for a reason. Any delay gets in the way of my reason nearly 100 percent of the time.
Nope. Not when my laptop is connected to my monitors/dock at home. The screen locks, the monitors time out and power off, everything else remains on/dormant. When travelling with it, it just hibernates.
If I had a desktop PC and it had fans/etc I would probably hibernate it rather than shut it down. As I understand it windows tends to do this by default these days as well.
Apologies, I will literally never be able to relate to this entire line of thinking. If I’m at an airport and it’s close to boarding time, my laptop has already been shut down ten minutes ago because when I first hear the announcement I see that as ‘computer time is over’ and consider this just generally the smart thing to do (… And you can just hibernate or disable wifi/bluetooth and leave the thing on anyway)
Generally if I’m turning off my computer I understand that as something that could take a minute or three because a small wait is not this huge dramatic thing y’all make it out to be.
It’s not a dramatic thing for me personally. 90 percent of the time my laptop politely sleeps when I ask it to, the remaining 10 percent of the time it’s going to sleep regardless of its opinion on the matter.
Small edit: I have sometimes been the unlucky recipient of a bundle of windows updates that that 15-20 minutes to complete. One thing about Linux distros, they don’t pull that kind of stunt in shutdown.
And lucky you to be able to not have any last minute things to deal with at the airport that get foisted upon you by clients / coworkers. Computer time is never over.
Would be nice, but it (that is, windows in this case) won’t go to standby because by the time you get to the shutdown/update stage, power management is shut off.
Instead it turns into a lovely mini furnace in its pocket in my travel bag until windows deems that it has finished.
Edit: and that’s what I find alarming. Once , I just hit the power button and closed my laptop and got on the plane, and about 15 minutes later I went to get something from my bag in the overhead compartment before we took off. Holy shit, was my laptop hot, and it was 70 percent through an update. Presumably it was throttling due to heat and the throttling was making the updates even slower so it was a vicious cycle.
Right, but is it just residual? This topic is interesting but mostly in a historical way now. Of course if you want drama, there’s always drama to be found.
I feel like, at this point, it has more than proved itself as a general purpose desktop scheduler. But there are situations where you would want something different but a lot of software depends on it anyway.
I also kinda don’t understand the hate toward the project itself, other than hearing some of the technical guidance on it has been a bit arrogant in the past or something. Sounds like sily open source drama to me honestly.
I find it incredibly useful - instead of needing to learn a million quirks about the init of every distro they all use the same predictable system now, you learn it’s quirks once and those skills transfer everywhere. Hopping from Ubuntu to Debian to Arch to Fedora is trivial now compared to the old days.
That and systemd-boot and systemd-nspawn are awesome.
Hopping from Ubuntu to Debian to Arch to Fedora is trivial now compared to the old days.
Let me guess: travelling for you as an American have never been so easy since English today is a must-know virtually everywhere. What’s the point though?
instead of needing to learn a million quirks about the init of every distro they all use the same predictable system now
Autistic, right-wing conservative or just not much of a learner? The first one I understand, but the other two are just urging you to be pissed upon.
Linux has also overshadowed BSD. Diversity matters, but so do standards. Code interaction contracts (think APIs and syscalls) are the glue to make a program that will run on a lot of diffrent software/hardware stacks (like diffrent OSes and hardware combinations). Sadly specific implementation diffrences make the genaric contracts (like UNIX/POSIX) unable to be implemented pefectly.
It’s a giant mess of interconnected programs that could theoretically still be disentangled, but in practice never are. It was very quickly and exclusively adopted by pretty much every major distro in a short period of time, functionally killing off any alternatives despite a lot of people objecting. Also, its creator was already pretty divisive even before systemd, and the way systemd was adopted kinda turned that into a creepy hate cult targeted at him.
There’s nothing actually wrong with systemd. I personally wish there was still more support for the alternatives though. Systemd does way more than I need it to, and I just enjoy having a computer that only does what I want.
Am not sure about “giant mess” but indeed it has a lot of moving parts. All that said, systemd is solving tangible problems which is why you will almost never see maintainers complain about it. It’s mostly Linux users which by definition oppose any change, Firefox 4 → Firefox 5, Gnome2 → Gnome3, SysV → systemd
“Giant mess” was maybe an uncharitable phrase to use, but it really is a lot of programs that are always used together because trying to mix and match it with other stuff or even just take pieces out is a massive pain in the rear. Again, I don’t actually object to systemd. I use it myself because it’s so much better supported. It is not always ideal for everything though, and I’m a little sad about the lack of support for other options.
The idea that Linux users by definition oppose any change is just silly though. We almost all got here by making a big change in how we use computers. Almost any change will be opposed by at least some members of any group. That’s just how people are. That’s not a special thing about Linux users. Sometimes a change that is overall for the better causes some things to be lost, and saying the people who are unhappy with that “by definition oppose any change” is kinda creepy, if I’m being honest. In particular all of those examples you gave are times people were forced into a change that was not all for the better, especially in the short term, with little notice, and no opportunity to voice their concerns in a more constructive manner. Of course some people complained. It would be weird if they didn’t.
I didn’t say there were better options. I didn’t say it shouldn’t have been adopted. I said it has some drawbacks, wasn’t rolled out very well, and I miss having other options even if they aren’t as generally useful for everyone, and it is inevitable that some people would complain because of that. That isn’t a problem. It’s okay to complain sometimes. We all do it.
this is a Just World fallacy, assuming the best thing will always be adopted and therefore everything not adopted is worse than [current thing], when it is entirely possible that there are in fact better options
This is not a Just World fallacy because I’m not talking about justice or people getting what they deserve. My assumption is that OS developers are competent. Until I see otherwise I’ll maintain that assumption.
I use runit on Artix. I wasn’t around for the init wars, but dove into the rabbit hole of Debian email exchanges, where lots of shade was thrown around because of suspicions over corporate influence on Linux, and Canonical dropping the ball because of their Licensing on their competitor init, Upstart.
I reviewed videos of Poettering going on about it, adamently placing systemd as the hill he was willing to die on.
I read the Torvaulds email complaining about Kay Sievers being an asshole. Looked at how Kay Sievers famously refused to fix early boot problems with systemd. Read Laurent Bercot’s technical break down of why even from a software design level, systemd should be called into question.
Its all interesting, and on my home desktop, I decided to only use Artix, Void, Gentoo, or Devuan over any of the others for as long as I can.
At work, I don’t care. Do I wish that runit or s6 was more predominant and widely used? Absolutely. Imho both init systems are just more minimal and their implementations are so solid, they are two of the very few pieces of software I can say are finished. No notes, no new features, and because of the minimal attack surface, barely any security patches have been necessary.
Due to their following of the UNIX Philosophy, both runit and s6’s source code can be reviewed in an afternoon, as opposed to systemd which has taken me considerably more time to parse through (though I’ll admit systemd has some decent comments in their code that helps out).
But at work, while I have my preferences and opinions, the systemd debate isn’t even close to the top of my list on arguments I’d like to have at the work place.
I underatand, but I just don’t care. Give me a functioning linux desktop and I will also run your garbage proprietary nvidia software. The alternative is windows, so I have to take what I can get.
I’d argue systemd has bad, borderline incorrect design. I didn’t like SysV because it caused inconsistencies and hard to understand processes. systemd fixed the inconsistencies but the rest is sort of hacked together bullshit that developers play wackamole with. That hackery is the reason it can’t be used in Docker for example. It has a complicated parser for a language that’s basically a DSL that doesn’t really solve the problem of complexity for the user. It requires a whole slew of random non-sense to work and it feels like stars have to align perfectly for things to function. It encourages bad behavior like making everything socket activated for literally no reason.
Compared to SysV, I’ll take systemd. I don’t find it ideal at all though. It’s serviceable… much like how Windows services are serviceable. S6 is I think what the ideal init would look like. I’m more impressed with it’s execline and utilities suite but that’s another story.
The only thing I think systemd did right is handling cgroups.
Some docker containers come with systemd. Of note, the RedHat ubi8-init and ubi9-init containers. Not that they’re wonderful and perfectly open, but that it is possible and available.
Having sniffed around the Linux community for years, I feel like whatever flaws SystemD has as a computer program are of tertiary importance when faced with the thing that really matters:
The developer of SystemD was mildly rude to some community members that one time. That means he is two hitlers and a stalin wearing a trenchcoat and everything he makes must be utter garbage.
Yeah they seem to think he “took over” the Linux init process all by himself. Like distro maintainers aren’t the ones who made the decision to move to systemd based on technical merits (presumably).
It is on technical merits as you don’t see maintainers complaining about systemd, only users who just don’t like it for number of randomly picked reasons.
I interacted with him briefly in a forum but didn’t realize who he was until later. He had that a bit of that programmer awkwardness going, but also having such a vocal abd sustained backlash against a major project you’ve been working on for years has to affect the poor dude pretty heavily.
Add comment