systemd has been a complete, utter, unmitigated success
systemd has been a complete, utter, unmitigated success

systemd has been a complete, utter, unmitigated success

systemd has been a complete, utter, unmitigated success
systemd has been a complete, utter, unmitigated success
I totally agree. I used to hate systemd for breaking the traditional Unix philosophy, but the reality is that a tight init and service-tracking integration tool really was required. I work with and appreciate systemd every day now. It certainly didn't make things simplier and easier to debug, but it goes a long way towards making a Linux system predictable and consistent.
Poettering can go fuck himself though - and for PulseAudio too. I suspect half of the hate systemd attracted over the years was really because of this idiot.
systemd is easy to work with, other init systems introduce kinks, I rather break philosophy than deal with that shit
Is it really breaking it? As far as I'm aware, it's more like gnu. It has components and you can select what you use (here meaning distros and packagers).
People mistake this for a monolith because it's all named systemd-thing. Integration, like you said, was and is needed. But what if all those separate utilities and services are actually disconnected and speak some protocol different to pipe? Does it make it less unixy?
And poettering is an absolute good guy here. Pulseaudio wasn't perfect, but did it improve things compared to what was there before? Sure it did. Even now, pulesaudio protocol is used within pipewire and it works just fine.
Perfect is the enemy of good. And while all these tools might not be perfect, they are the best in the Linux world.
poettering is an absolute good guy here
Agreed. But he's also an abrasive know-it-all. A modicum of social skills and respect goes a long way towards making others accept your pet projects.
pulesaudio protocol is used within pipewire and it works just fine.
I wasn't talking about the protocol, I was talking about the implementation: PulseAudio is a crashy, unstable POS. I can't count the number of hours this turd made me waste, until PipeWire came along.
“It’s more like gnu”
You are correct. GNU has the bad habit of only working with itself as well. Systemd only works with Glibc so it fits in well.
The reality is that GNU is just a subset of the Red Hat Linux platform these days. Systemd is another part. GNOME is the other big chunk. They are all designed to work with each other and do not care if they work with anything else.
From what i understand the problem is that while systemd is technically split up into different components, you can't really use it with the stuff you don't want ripped out.
And poettering is an absolute good guy here.
You obviously weren't actually around when he was granted mini-king status and acted like a jackass to literally anyone who objected to pulse or systemd. As a result, redhat, canonical, and Debian had to eat criticism over pushing these before they were ready... because of "superstar" poettering.
Poettering is a disrespectful clown.
Linux audio has been a cluster^$%< of epic proportions since the mid 1990s. At least you can make single application systems work well these days, but Windows has really whipped the llamas ass on the audio front for 30+ years now, in terms of "it just works" user experience - without being hyper-draconian on the application ecosystem.
I’ll just go ahead and start the flame war.
I totally agree with the functionality of systemd. We need that. But the implementation… Why the fuck do we need to cram everything into pid 1? At least delegate the parsing into another process, god damn. And could we all just agree that ’systemd-{networkd,resolved,homed}’ don’t really have a reason to exist, and definitely not that coupled to a fucking init system. Systemd-timers are wonderful, but why are we running cron-but-better in pid 1?
We have an init-system where the developers are afraid of using things like processes and separation of privileges. I’m just tired of patching fleets of servers in panic every time Pöttering’s bad design decisions hit the fan with their CVEs and consequences.
The coupling in PID 1 is a bit much. I actually quite like systemd-networkd
for some use cases, though. It lets me declaratively manage the network interfaces on my headless servers in a way that's very similar to how I'm managing the services. Sure, it's coupled to systemd
, but it's mostly one-way coupling; if I want to use NetworkManager (which I do on my laptop), I can switch over, and nothing in the init system breaks.
predictable and consistent.
Or none of those.
Oh. My NIC didn't 'start' because systemd and network manager are fighting again? Neet.
Just use systemd-sudo to replace network manager with systemd-networking
I don't know why they are downvoting you, it's true. I'm dealing with this kind of problem currently.. sometimes the boot lasts forever to the point that I have to use AltGr+SysRq commands to force kill everything.. other times it simply boots as normal. It's not consistent at all.
At least before with the old init it was relatively simple to dig into the scripts and make changes to them.. I feel now with systemd it's a lot more opaque and harder to deal with. I wouldn't even know how to approach the problem, systemd-analyze blame
does not help, since the times I actually get to boot look normal. But I do believe it must have to do with the mountpoints because often they are what takes the longest.
Any advice on what should I do would be welcome.
Also, I have a separate Bazzite install in my living room TV, and while that one does not get locked, sometimes NetworkManager simply is not running after boot... I got fed up to the point that I wrote a workaround by creating a rc.local script to have it run, so I can have it available reliably when the system starts (that fixed it.. though some cifs mountpoints often do not get mounted.. so I'm considering adding the mount command to the same rc.local script too....).
What is the Unix philosophy?
Unrelated but how do people feel about the ai images when used for something like this.
The font is very telling for being DallE
I think it strongly detracts from the post. I basically skipped right to the comments without clicking the link because I'm assuming it's AI slop, and I'm hoping the comments are interesting.
AI should be able to do a really good systemd debate by now, the available training material is immensely huge.
I only read the blog because of the thumbnail.
I strong hate these imagines with a piss tint. I can't stand them. And the text has these tiny AI-flavoured imperfections too.
The 'recreated' photorealistic thumbnails on youtube are even worse, IMHO -- especially when they involve subtly warped faces of familiar people.
People would be less mad if you straight up used a stock image with a watermark so I don't understand why people go out of their way to use AI when they know people will comment on it and it will detract from the point of the article.
Also, using AI in the thumbnail makes people automatically assume you're using AI in the text as well. And if you're not doing that, why would you lessen the perceived value of your writing by making it seem like you are?
It just seems pointless and actively harms your actual goals because people will get hung up on the fact that you used AI and ignore your actual valid points. Especially when you're writing about open source projects when most people interested in open source are vehemently anti-AI, it really just shows you don't know your target audience.
While I mostly agree with you (and 100% on it distracting from the article), I think you’re not thinking about image rights.
If you’re a serious blogger with a good sized blog, a lawsuit or DMCA or otherwise is potentially a killer outcome of using an image you don’t 100% sure have the rights to. With AI, you can be 100% sure you can use the image however you want, without any repercussions. I’d imagine that’s huge in the considerations for a blogger.
Using an image with a watermark will get you sent legal threats or fines.
Absolutely hate it, I just close tabs I'm interested in reading if it has AI generated images.
The piss stain colour palette confirms it.
i’m downvoting ai slop every chance i get. i’m sure it’s just as futile as downvoting every post that used the acronym ‘FAFO’. i hated that one because i think the people who used it thought they sounded sooo cool.
if you’ll excuse me, i’ve got some clouds outside i need to go shake my fist at.
Clocked it right away. I hate it 100% of the time.
Also that leftmost card hovering behind the hand
Personally I think it's fallen out of fashion. For my blog I'd either use a meme or other dump picture for each post. When generated images first came out I used a few for blog posts, it was new and interesting and said "I'm interested in technology and like playing around with new things".
Nowadays I'm back on the meme pics. I feel now it's so much easier to generate images, it more says "I want to look professional but also spend no money and have no standards".
Couldnt have they just used real cards?
It's refreshing to read to someone that actually says "I was so wrong"
I was wrong also with systemd, I hated it mainly because I already knew init.d, where files are, where configs where etc. Some years later hate is gone, I'm not a power user, but I just now know how to handle my things with systemd and all is good.
I see most often that it's the people who live in init.d - interact with it multiple times a day - who are most vocal about systemd hate. I'm going to call "old dogs don't like new tricks" on that one.
I do get into that layer of system maintenance, but it's maybe 1-2% of my time, mostly a set-it and forget-it kind of relationship. There was a time when the old ways were easier due to more documentation and guides on the internet, which I lean on heavily because I interact with this stuff so rarely. Those days passed, for me, 8-10 years back.
You do realize that it's not a binary between systemd and SysV, right? There are modern replacements for SysV other than systemd, like dinit, OpenRC, s6 and they all strive to address the shortcomings of SysV
And they are all playtoys, unused in production by anyone serious for a reason.
I'd say the main bad part of systemd is how it's used and now expected everywhere.
If you search for some Linux guides or install something complicated or whatnot, they always expect you to have systemd. Otherwise, you're on your own figuring how things work on your system.
This shouldn't really happen. Otherwise, yes, it's great, it integrates neatly, and is least pain to use.
In my opnion, systemd is like core-utils at this point.
It's so integrated into most things and the default so many places, that most guides assume you have it.
There is no authority delegating responsibilities of writing tutorials for Linux. It is the responsibility of nobody and everybody. If you can't find one for your problem, write it yourself when you have figured it out.
I don't appreciate the attitude and arrogance of the guy behind systemd because he actually believes what he produces can replace everything that already "just works". He wants to push out systemd-homed because "why not". He wants to replace grub. He wants to replace a myriad of things that just flat out don't need to get replaced. autofs, cron, you name it! That kind of thinking and one-size-fits-all mentality is backwards and does not benefit the community in any way. All it does is stuff everything into one bin and so long as influencers like this guy continue to restrict what works or doesn't work according to their own work, the community and its users will not be able to freely develop FOSS. Gnome is a good example of something that creates too much of a dependency on systemd and so when you're trying to use something like Gentoo, it becomes very difficult to get that done and hacks have to made in order to get it working. FOSS shouldn't work like that. He'll keep stripping away legit projects from major distros until IBM/Red Hat finally decide to seal the deal and lock everyone out for good. Sorry if I can't rejoice in the woah whiplash.
The is the first time I’ve ever heard someone accusing grub of „just working“
Grub is working perfectly fine.
If it breaks it is, in my experience as a grub user for over 20 years and as a guy working in server hosting for 15 years, either because of failing HDD/SSD or because of user error. People don't read when the updater tells them that running "grub-install" is needed (or they perform it on the wrong drive/partition) and then blame grub when it fails on the next boot.
The crappy bootloader that comes with systemd very often, in my experience, fails to register that a new Kernel was installed and boots the old one (or fails to boot if the package manager removed the old Kernel).
Oh and GRUB has so many useful features, like booting a ISO image. GRUB is a piece of programmer art!
lmao
All it does is stuff everything into one bin
Well, it is not one bin. There is no monolithic systemd bin that does everything. There are a lot of separate bin files for all the different tasks. Well and if you don't want to use timers, then don't and just use cron instead. If you don't want to use journald, then just don't and use rsyslog or whatever you want. Don't need systemd-homed? Well, then don't use it. You want to configure your network with something else then systemd-networkd? Great, do it if you want.
The Poettering Army will not come and force you to enable all the options 😜
Except, they are. Pottering is the front man who does the dirty work for IBM and Microsoft to take over Linux by forcing distros to adopt systemd.
Those of us old enough to remember the "vote" that resulted in Debian going to Systemd remember it was almost at gunpoint.
Death to systemd, long live FOSS culture
He wants to replace grub.
I hope so!
So, I don't like the guy either, but for a little devil's advocacy:
The stuff that already "just works" was developed during a very different era in terms of computing power, tasking of the computers which were running the systems, etc. Nobody (serious, and he is serious) develops something different because "why not?" they, at least from their perspective, feel that they are improving on the status quo, at least for the use cases they are considering.
one-size-fits-all mentality is
being decided by the distro maintainers, not the developers. Sure, developers promote their product, but if a distro thinks that multiple flavors are a better path, they distribute multiple flavors. It's not like the systemd developers are filling billion dollar war chests with profit because they're using strong-arm tactics to coerce distro maintainers to adopt their products.
stuff everything into one bin
When one bin serves the purpose, it's a lot easier to maintain, modernize, security harden, etc. than ten bins.
the community and its users will
notalways be able to freely develop FOSS.
Fork it and your loyal users will follow.
Gnome is a good example of something that creates too much of a dependency
Agreed, I was never happy with GNOME, and starting about 5 years back I have been migrating my systems, personal and professional, off of it. That's the nature of FOSS, no contracts to negotiate, make the choices that make sense for your use cases and execute them.
FOSS shouldn’t work like that.
FOSS, by its very nature, should be expected to work all the ways. If a particular way can't get enough developer traction, it stagnates but never really dies, not until the ecosystem it is dependent upon can no longer find hardware to run on and users willing to run it.
IBM/Red Hat finally decide to seal the deal and lock everyone out for good.
I am very glad that I walked away from CentOS about 8 years back, its proximity to Red Hat never made me happy. I have been trying to walk away from Canonical (toward Debian) for about 3 years now, but it still has some hooks that keep our professional team happier than Debian. If the unhappy ever outweighs the happy, we'll execute the move.
Sorry if I can’t rejoice
Never asked you to. End of devil's advocacy. I still don't like the guy, but I never really interact with him. I do interact with his products and the alternatives, and in my use cases the products speak for themselves. There's nothing about systemd that makes me dig around for systemd free alternatives - they are out there, but for my use cases I don't care. YMMV.
Grub is shit
Aye lmao
I still doesn't like it...
I hated it and still do because for a period of years every weird, difficult to find issue on a bunch of servers was caused by systemd. It may be fine now, but I switched to Devuan and have had incredible stability. Poettering's response to security issues was also terrible and honestly the dude seems like a real piece of shit.
I've been using systemd on most of my systems since it was released; I was an early jumper to upstart as well.
The thing I don't like about systemd is how pervasive in the OS it is. It violates the "do one thing, do it well" Unix philosophy, and when systemd went from an init system to starting to take everything over, I started liking it less.
My issues with systemd is that it isn't an unmitigated success, for me. journald is horrible: it's slow and doesn't seem to catch everything (the latter is extremely rare, but that it happens occasionally makes me nervous). There are several gotchas in running user services, such as getting in-session services working correctly (so that user services can access the user session kernel keyring).
Recently I've been using dinit on a system, and I'm pretty happy with it. I may switch all of my systems over to it; I'm running Arch everywhere, and while migrating Arch to Artix was scary the first time, in the end it went fairly smoothly.
Fundamentally, systemd is a monolithic OS system. It make Linux into more of a Windows or MacOS, where a bunch of different systems are consolidated under a single piece of software. While it violates the Unix philosophy, it has been successful because monolithic systems tend to be easier to use: users really only have to learn two command-line tools, vs a dozen. Is it categorically better, just because the user interface is easier for new Linux users?
Systemd is modular not monolithic. Distros choose which parts of system d to implement and it just happens to be most of it since its really good at what it does.
It is not modular. This is a lie Poettering keeps pushing to defend building a huge edifice of interdependent systems.
Look at the effort required to factor out logind. It can't just be used in it's own; it has a hard dependency on systemd and needs code changes to decouple.
I will repeat that journald is really bad at what it does, and further assert that you can not run systemd without journald, or vice versa. That you can not run systemd without getting timed job control. Even if you chose not to use it, it's in there. And you can not get time job control without the init part. In most unix systems, init and cron are utterly decoupled and can be individually swapped with other systems.
Systemd is not modular if you can't swap parts out for other software. Systemd's modularity is a bald-faced lie.
The one exceptions are homed and resolvd, which are relatively new and were addedlong after systemd came under fire for being monolithic. And, ironically, they're the components most distributions don't use by default.
You cannot even decouple SystemD from Glibc, never mind separating the various components from each other. It is a bunch of processes but it is designed as a monolith.
I've never used any other init system since I'm relatively new to Linux (8 years of use). So, systemd is all I know. I don't mind it, but I have this one major issue with it. That "stop job for UID 1000......" Or whatever it says. It's hands down the most annoying thing I have ever experienced in Linux. Making me wait for 3 minutes sometimes is just insane. I know I can go in and make it wait for 5 seconds /etc/systemd/system.conf
or whatever, but why? Also, another one usually pops up.
Other than that, I really like how I can make timers. I like how I can make scripts run on boot, logout or login. And I like how I can make an app a background service that can auto start if they ever crashed. Maybe all of this can be done with other init systems? I wouldn't know, but I like these in systemd
I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/systemd/Linux, or as I've recently taken to calling it, GNU plus systemd Linux.
GNusysdlin
I'm over here still using OpenRC. Mostly because I want to. Some servers I run have systemd on them. systemd is generally nice. OpenRC has finally gained the ability to run user services, which is also very nice.
dinit also has the ability to run user services, FWIW.
I use it because I'm frankly too dumb to use something else, but if that wasnt the case, i dont think id be speaking fondly of it.
I'm a ram usage fetishist, I absolutely disagree with the "unused ram is wasted ram" phrase that has caught on with people.
I see some of these distros running a graphical environment with only 90mb ram usage and i cream myself. All of them run something other than systemd, usually avoid GNU stuff, and...require you basically to be a developer to use them.
I already run a half broken, hacked together system due to my stubborness, I can't imagine how fucked I'd be if I tried one of these cool kid minimalist distros.
90mb ram
If you're in a system where 256mb of RAM is the limit, sure - go for the RAM efficient OS options, they're out there.
Can you even buy less than 2GB of RAM in a desktop system anymore? Even the Raspberry Pi 5 starts at 2GB (and, yes, the older models have less, but I did say desktop system, implying: reasonable desktop performance.) Maybe if you feel the need to use a RasPi 3 as a desktop for something then you should dig around for one of your more efficient OS configurations, but I'll note... back when RasPi 3 was the new model, Raspbian came default without systemd, but offered a systemd option. The systemd option booted from power off to the desktop (such as it was) in about 1/3 the time.
Unused memory IS wasted memory and my Linux machines, AFAICR, always have buffered everything possible since twenty years ago, it's not a systemd thing. It also speeds up things, why the long face?
So you just like having ram doing nothing? Unused ram is wasted ram. Distros cache a lot in ram because they can. I mean why hav RAM is you just want to stare at it and say ohh look at all the free RAM.
Even a system that uses 90mb of ram on a cold boot will accumulate gigs of stuff in cache if you're using it. (assuming it has the memory for it) That isn't what people have a problem with though.
Maybe this is an incorrect use of language on my part, but I feel like I'm not the only person who means "memory actively being used by a process" when referring to memory usage. I understand the whole linux ate my ram thing. That just isn't what I or what I assume a lot of people mean when talking about this.
When I boot up my system, pull up my terminal, run htop, and see 800-1200mb being used just by processes (not in buffer, not in cache), that doesn't raise any flags or anything, but I also know that some people have gotten their systems so streamlined they use 10x less than that. That's all memory that could be used by other things. That could be the difference between a low memory system running a web browser or not. Could be the difference maker in a game someone wants to play on their system. There are endless possibilities.
I totally agree.
I hate to admit I didn't want anything to do with systemd because it took me forever to get somewhat familiar with some other mainstream init systems.
Then, I didn't care for a while until I developed software that had to keep running using some sort of init system. The obvious choice was whatever the default I had (systemd) and I fell in love with the convenience of systemd (templates, timers, ..). I started shipping sample systemd with the things I provide & yes, you are on your own if you use something else.
I'm in Guix Linux land right now and I miss journald
. I'm supposed to wade through all the log files in /var/log
myself??
I still have no idea how to find the right record to read but at least I can run a journalctl --follow till my crash happens
If that approach is enough then tail -f /var/log/*
could work too with multiple files, it'll "follow" all the files and display only new lines.
journalctl is the one part of systemd I really do not like. For whatever reason, it's insanely slow, taking multiple seconds before it gets around to display anything. It also has all the wrong defaults, displaying error messages from a year ago first, while scrolling to the bottom again also takes forever and consumes 100% CPU while doing so.
There are flags to filter and display only the relevant parts, but not only are none of them intuitive, doing a mistake there just gives you "-- No entries --", not an error. So you can never quite tell if you typed it wrong or if were are no messages.
Maybe it all makes more sense when studying the man page in depths and learned all the quirks, but /var/log/ kind of just worked and was fast, without any extra learning.
Because people here accuse Poettering of being an asshole: I've read some of his blogposts and seen some talks of his and him doing Q&A: He answered professionally, did his best to answer truthfully, did acknowledge when he didn't know something. No rants, no opining on things he didn't know about, no taking questions in bad faith.
As far as I can tell all the people declaring him some kind of asshole are full of shit.
He is not that bad, the issue is that, as all foss devs, he is not interested in solving problems he does not feel like are important.
The problem is, he disapproves when resources are allocated in his project to those problems and one main area he is not a fan of is support for legacy stuff.
It just happens that legacy stuff is the majority of the industry, as production environment of half the globe needs to run legacy software and a lot of it on legacy hardware
I decided to finally lean into using systemd more while i've been using NixOS, since the OS already relies heavily on it anyway. Created targets for my window managers, starting all my programs with services instead of autostart scripts, etc. And it worked fine for the most part, except for some reason, in qtile the systray widget refuses to load the nm-applet when it's started through systemd. Waybar does not have this problem. I can't help notice that systemd is not just a little slower, which isn't the biggest deal in the world, but it also tends to hang more often when shutting down, which is a bit annoying and reminds me of windows lol. Before NixOS i used Void, and while i never really cared too much about what init system i'm running, i can't help but really appreciate runit for being so simple and fast. I'm thinking of moving back to Void but using the Nix package manager on top. I recently found a solution to the nix driver problem when using it on other distros, so now i should be able to combine the best of both worlds.
Void Linux doesn't use systemd.
Though I see Systemd as an improvement, I still do not like it.
The Chimera Linux FAQ captures my thoughts quite well:
https://chimera-linux.org/docs/faq#what-is-the-projects-take-on-systemd
I like systemd overall. The ease of use, uniform interface and nice documentation is awesome.
Though each time I try to run it on outdated hardware (say, my Thinkpad X100e, which is, well, a life choice xD) — it makes whole system much slower. IMO, openrc is not as bad, and in some ways it gives some capabiilties of systemd these days.
I've never used anything but systemd. I feel fine about it, but I think I'd feel the same way about not using it.