Person: Systemd bad
Me: why
Them: IDK
Hint: :q!
Sister communities:
Community rules (click to expand)
1. Follow the site-wide rules
sudo
in Windows.Please report posts and comments that break these rules!
Important: never execute code or follow advice that you don't understand or can't verify, especially here. The word of the day is credibility. This is a meme community -- even the most helpful comments might just be shitposts that can damage your system. Be aware, be smart, don't fork-bomb your computer.
Person: Systemd bad
Me: why
Them: IDK
The argument is basically that it does too much and as the motto of Unix was basically "make it do 1 thing and that very well", systemd goes against that idea.
You might think it is silly because what is the issue with it doing many things. Arguably, it harms customization and adaptability, as you can't run only 2/3 of systemd with 1/3 being replaced with that super specific optimisation for your specific use case. Additional, again arguably, it apparently makes it harder to make it secure as it has a bigger attack surface.
Sustemd is modular though, you don't have to use every subsystem. The base init system and service manager is very comprehensive for sure.
Then again, it doing all those things can lead to those parts working together better because it's the one project instead of a dozen different projects with every distro having a different mix.
I understand your point and I want to make clear that my own opinion is not in favor of systemd or against systemd. I am very much neutral. I just expressed my understanding of the arguments. But I welcome the discussion.
And funnily enough, the kernel doesn't follow the unix philosophy either as far as I know.
I been told it was to big, but if you look at the Linux Kernel, it is huge.
People also love to say Unix, but Linux is not Unix.
maybe systemd is a verb
e.g.
"damn homie got systemd by the opps"
Poettering and Systemd are amazing and Linux would not be as good as it is today without them. Whether you like it or not, we can't have a fragmented ecosystem and expect people and companies to adopt it (see the 14 competing standards XKCD). Having one solid base that works the same on every client is like literally the base requirement for making a product for the said client. Systemd, flatpak, xdg-portals, pipewire and immutable distros all solve this.
Here's my hot take: I don't care what operating system most people use. If people are happy on Windows, let them stay on Windows. That's not my problem. When you say we need to make Linux less diverse and interesting to make number go up because more biggerer number more gooderer then suddenly that is my problem. You are trying to make my experience worse for the sake of something I do not care about.
There is nothing wrong with systemd. Most people on Linux are using it, and that's fine. Options are good too though. I specifically like Linux because it's NOT a bunch of homogeneous lowest common denominator sameyness. That's the very thing I don't want.
I'd like to propose a new rule for this community:
People criticizing systemd to the extent where they promote alternatives (regressions), have to provide proof that they have or are maintaining init scripts for at least ten services with satisfying the following conditions: said init scripts must 1.) be shown to reliably start up the services and 2.) not signal their dependencies to early and 3.) gracefully stop the services 99.9% of the time. People failing to satisfy these conditions are not allowed to voice their opinions on how arbitrary init systems are better than systemd. Violations of this rule will be punished by temporary bans and forcing the violators to fill the entire canvas of a blackboard with "'do one thing and do it well' is a unix principle, not a linux principle" in fine print.
More lines of semi-reliable init scripts have been written by package maintainers, than lines of systemd code by Poettering & Co, and that while achieving far less. The old init systems might have been simple, the hell of init scripts wasn't.
That might have been true a decade ago. I don't actually know. I do know that modern init scripts for modern alternatives to systemd are barely longer than systemd service scripts though. So that's kind of an insane take.
To me systemd is fine, I am not really emotional at init systems. But on the other hand Linux is about choice and systemd kills that in some way because it does so much more than just starting services. GNOME is unusable without systemd, which makes it a no choice if you go into another rabbit hole. It’s kinda weird how deeply systemd is integrated in Linux these days. What I really dislike is that the log is in binary format by default which makes it necessary to deal with another tool to read logs. But well software changes, so do tools. But honestly the devs acted like dick heads sometimes, so I think most of the antipathy comes from their behavior and well yes MS now kinda pushing systemd because poettering works for them. I have fear that MS forces the systemd devs to implement things you cannot simply opt out of because it is so tightly integrated. Maybe copilot for writing systemd unit files would be nice though :P
GNOME is unusable without systemd
It is also unusable with systemd.
This comment was presented by the KDE gang.
Systemd is very customizable and flexible. I also fine it is faster than anything else. You can also choose what systemd services to use and what not to use
well yes MS now kinda pushing systemd because poettering works for them. I have fear that MS forces the systemd devs to implement things you cannot simply opt out of because it is so tightly integrated.
How has MS pushed systemd?
That's a nonsense spin of things. There wasn't/isn't a need for Microsoft to push systemd, because it had been adopted by all major linux distributions before Poettering even made the switch. It's a straw that init system luddites clutch at.
I feel like the people who complain about systemd have never tried to mess with sysVinit scripts before
6+ years ago, I was trying to configure a touchscreen HAT for a raspberry pi, and dicking with the init.rc script was a massive pain
Kind of sad there are still people raging over systemd. When it flares up in discussions there is the usual debunked nonsense:
What is more bizarre is the nostalgia and hearkening back to sysvinit scripts when systemd didn't replace sysvinit! Systemd replaced upstart which replaced sysvinit. Because writing 100s of lines of script to stop/start/restart a process sucked - insecure, slow, didn't scale, didn't capture dependencies and everyone knew it. Upstart was the first attempt to solve the issue and was used in Debian / Ubuntu, Fedora / Red Hat, openSUSE and others until systemd came along.
You know, it's funny. I don't actually have much of a strong opinion on The Unix Way or Lennart Poettering, and I'm not super fond of Red Hat, but it's not like I'm going to avoid everything they're involved in the maintenance of and still use Linux.
I do like alternatives though, so I've been trying out OpenRC recently, and I gotta say I really like it. Of course there's a little bit of a learning curve, but honestly it's just simple and fast and stays out of the way, and it's nice to just open logs in any text editor I like. Systemd can do all kinds of crazy things, and if you need any of them then there's no reason not to use it, but I don't, and it's just kinda pleasant to have something nice and straightforward that I actually kinda understand instead.
Poettering works for MS now? That's the best news I've heard in a long time.
Who the fuck spells developed with two ‘p’s???
It's a mistake indeed. And there's a very logical explanation as to why I made that mistake. The reason's simple, really. Obvious even. So much so that I won't bother explaining.
Hi am noob why systemd bad? I use Debian, is fucked?
Honestly I've been hearing about this for a while now but never bothered to check, I'm too lazy for that.
It's not inherently bad, it "fails" the Unix Philosophy of "Do one thing and do it well" but since Linux's kernel is:
It used to be a mess, but that's solved. The biggest reason to avoid systemd is mainly user preference, not anything malicious. 90% of current distros use systemd as its easier for the maintainers and package programmers to build for the general than each package and each distro having their own methods of how to do an init system and other tasks.
How Debian and Arch and Gentoo and Slackware and other big distros worked was different, and the maintainers of those packages had to know "Debian's way" and not a general way that most places accept. Systemd actually solved the Too Many Standards! issue.
I've never really seen a big argument against systemd, but maybe I've just not heard it.
It also didn't help that Poettering isn't particularly popular on a personal level. I think there would have been a lot less drama if he had better people skills.
Yeah, but to be honest, I would have terrible "people skills" too if people sent me death threats over writing a free software.
Doesn't take much to get death threats on the Internet, unfortunately. He probably would have received less of them with a better attitude, though. He wasn't full-on Ulrich Drepper, but still pretty divisive.
back when you had an init system and you got it just the way you wanted it, you would be pissed that you had to move to systemd
now its there when you install and it is stable so it isn't a big deal. But old beards hate change.
No one knows to this day
I highly recommend you check out this video
SystemD is not really bad. Like 90% distros use it, and for good reasons. Some people just pointlessly hate it on it, same way some people like to hate on Wayland too.
I believe partly because it takes over so many responsibilities that it becomes a requirement for things that don't need to require it. Plus it diverged from the Linux principle of do only one thing.
Also, afair, it was buggy for a while.
I am fine with systemd. It works. It is more complicated than init.d
Before you copied some random file you edited and put it in init.d and it worked. Now you copy some systemd services file into systemd and run enable and start and it doesn't work because you don't know what you are doing.
I didn't know what I was doing in init.d too but now I have to learn systemd services. Once you know a bit it will work then (probably)
I disagree. Before I had to copy and edit a huge-ass script (100+ lines) in init.d where 80% of it was concerned with PID files. I just want to start a process on boot, why is it so hard?
Now I can look at the documentation and write a simple unit file myself. It's like 4 lines.
init.d wasn't really what you'd call an "init" "system." It was shell + conventions about how to write shell scripts to manage each service. It effectively offloaded most of the work people wanted an init system/service supervisor to do onto developers that just needed to ship a system service. To be honest, it was insane. Templates/patterns/best practices emerged, but at the end of the day, init.d was just shell, and it caused tons of problems.
The extra complexity of systemd is in exchange for dependency management, service supervision, tons of things that are important/desirable for sysadmins/developers today, but are all far outside the scope of init. I'd much rather cope with the extra complexity of systemd in exchange for being able to write an actual service definition file.
Before you copied some random file you edited and put it in init.d and it worked.
Before you copied some random file you edited and put it in init.d and it appeared to be working but then failed in random ways the first time you restarted, the first time you rebooted, the first time you restarted it via sudo instead of directly as root since some environment variable differed,...
So really it only appeared to be working in my experience because you had no real way to check.
Me who doesn't know what it is and just uses it because it came with my distro
I mean I've briefly tried some of the modern distros that go without systemd recently, and honestly they just felt like I went back in time except they weren't even the same as then so I had no idea what I was doing without reading documentation that is imo much worse than the arch wiki.
And as a bonus fuck man pages as I can't in a pleasant way put them into my 1000s of categorized browser tabs for research and topic switching while being able to return without starting over.