It's also "infectious" software. The way systemd positions itself on the system, it can make it more difficult for software to be written in an agnostic way. This isn't all software, and is often more of a complaint by lower level software, like desktop environments. https://catfox.life/2024/01/05/systemd-through-the-eyes-of-a-musl-distribution-maintainer/
This isn't a terrible summary of some of the aspects of it.
Another aspect is that when it was first developed, the lead on the project was exceptionally hostile to anyone who didn't immediately agree that systemd definitely should take over most of the system, often criticizing people who pointed out bugs or questionable design decisions as being afraid of change or relics of the past.
It's more of a social reason, but if people feel like the developer of a tool they're forced to use doesn't even respect their concerns, they're going to start rejecting the tool.
Indeed, the Unix philosophy was do one thing and do it well. ls just list directory’s and files it’s not a network manager too. Systemd crams a lot of extra shit into an init.d/rc.
I still prefer the old system-v/openRC setup or BSD’s setup. It’s simple does 1 job and does it well. But I can work with systemd just fine in creating scripts these days and it does have some nice features like user startup scripts baked into it and podman integrates very nicely with it.
My understanding is that some people are die hards to the software philosophy of "do one thing really well". systemd at the very least does many different things. These people would prefer to chain a bunch of smaller programs together to replicate the same functionality of systemd since every program in the chain fits the philosophy of "does one thing really well".
Systemd breaks all three of though by being monolithic and binary. It actually makes you have to jump through more hoops to do things in certain cases. I understand it’s a mindset shift but it really starts making it feel more like Windows with how it works and the registry and event log.
People don’t like it because it’s declarative. It felt cool to be able to just put bash files into certain directories to have them executed on startup. That was elegant, in the sense of “everything’s a file”.
systemd is more of an api than a framework, so it’s a different design paradigm.
I hated systemd until I printed out the docs, for some coffee, and sat in a comfy chair to read them front to back. Then I loved it.
Mostly I hated it because I didn’t know how to do things with it.
Also, “journalctl” is kind of an ugly command. But really, who gives a fuck. It’s a well-designed system.
And if a person absolutely must execute their own arbitrary code they can just declare a command to execute their script file as the startup operation on a unit.
Good that you've enjoyed it. But a fundamentally wrong thing about systemd is that it is actively harming the best thing about Linux – freedom. Some programs won't work on a non-systemd distro because how tightly coupled and vendor non-agnostic anything that becomes dependent on might become at times. Of course it's not as bad as glib(loat)c, but still if something can be done without any degradation of functionality via standard POSIX facilities, WHY either incur additional maintenance overhead for non-systemd implementations or punish people for their computing choices if there's no one to maintain it?
Units and service files are confusing, and the documentation could be a lot better.
That said, when systemd came out the traditional init stack was largely abandoned. Thanks to systemd (and the hatred of it) there are now a couple of traditional-style init systems in active development.
I don't hate it now, though I did when it first came out, as it borked my system on several occasions. I'm still not a fan, but it works so eh.
One borkage was that the behavior of fstab changed, so if there was e.g. a USB drive in fstab which was not connected at startup, the system would refuse to boot without some (previously not required) flags in fstab. This is not a big deal for a personal laptop, but for my headless server, was a real pain. The systemd behavior is arguably the right one, but it broke systems in the process. Which is somewhat antithetical to, say, Linus Torvalds' approach to kernel development ("do not break user space").
It also changed the default behavior of halt --- now, it changed it to the "correct" behavior, but again...it broke/adversely affected existing usage patterns, even if it was ultimately in the right.
In addition to all of this, binary logs are very un-UNIXy, and the monolithic/do-everything model feels more like Windows than *NIX.
systemd tries to unify a Wild West situation where everyone, their crazy uncle, and their shotgun-dual-wielding Grandma has a different set of boot-time scripts. Instead of custom 200-line shell scripts now you have a standard simple syntax that takes 5 minutes to learn.
Downside is now certain complicated stuff that was 1 line need multiple files worth of workarounds to work. Additionally, any custom scripts need to be rewritten as a systemd service (assuming you don't use the compat mode).
People are angry that it's not the same as before and they need to rewrite any custom tweaks they have. It's like learning to drive manual for years, wonder why the heck there is a need for auto, then realizing nobody is producing manual cars anymore.
There is also the argument that it's more complicated under the hood and harder to troubleshoot, particularly because of it's inherent parallelism and dependency-tree design, whereas initv was inherently serial. It was much more straightforward to pick the order in which services started and shut down on an initv system.
For example, say I write a service and I want it to always be the first service stopped during a shutdown, and I want all other services to wait for it to stop before shutting down. That was trivial to do on an initv system, it's basically impossible on systemd.
For those wondering, yes I did run into this situation. My solution was clobbering the shutdown, poweroff, and restart binaries with scripts earlier in path search that stop my service, verify that they're stopped, and then hook back to systemd to do the power event.
"I am a new linux user. After 15 minutes of research on google, I found a few forum posts and some niche websites that said SystemD was bad, so I took it as gospel. Now my system doesn't work as simply as it did with installer defaults? How do I make everything Just Work™ after removing any OS components I don't understand the need for?"
I mean you essentially just highlighted a primary user experience problem with Linux....
Information & advice is fragmented, spread around, highly opinionated, poorly digestible, out of date, and often dangerous.
And then the other part of it is that a large part the Linux community will shit on you for not knowing what you don't know because of some weird cultural elitism...
When you finally ask for help once you realize you don't know what you're doing, you're usually met with derisive comments and criticism instead of help.
Do you want Linux to be customizable so that users can control it however they want. Or do you want it to be safe so that users don't mess it up? You can't have it both ways, and when you tell users to "go figure it out" and then :suprise_pikachu: that they found the wrong information because they have literally no idea what's good or bad, instead of helping, they get shit on.
It's the biggest thing holding Linux desktop back.
Debian, Arch, Fedora, Mint, Ubuntu, Redhat, Manjaro all have docs and wiki on their primary websites. Slackware has docs, Gentoo has a wiki. Anything that's not on a distro's site needs to be carefully considered before tampering. Almost all of those distros have a warning in their installation instructions to only listen to the information in their docs and wiki, and to a lesser extent their forums. Hell, even nosystemd.org tells you what systemd is, what it's for, what replacements there are, and the proper way to get rid of it in bold text under the header "How do I get rid of systemd?"
Listening to hackneyed advice from unvetted sources just because they have strong opinions is a problem that any and every computer will face. That's not a problem with linux anymore than the hoardes of trolls on random social media sites telling you to "delete System32" is a problem with Windows.
I want Linux to be customizable AND safe. But safe in the way that someone takes the time to learn how what they plan to do will effect their system, not safe in the sense of "impossible to bork"
As for elitism: if it's "elitist" to indirectly poke fun of someone who deleted a core system component without understanding what it does without a backup, then so be it. It feels more like that word is levied by people whose ego is too big to take respobsibility for the mistakes they made, and instead blame others for laughing when it bites them in the ass.
Idk where these swaths of elitists that refuse to help are. OOP went to stackexchange and likely got a helpful answer complete with explanations, as that is the community standard. Over on [email protected] , I see people offering help with problems all the time without shitting on them. If I go to the aforementioned OS forums, or really any software-specific forums, I see people helping or pointing people to where they can get help.
And I'm not denying that assholes who say shit like "did you even bother googling?" exist. They're nasty people with no patience, but they're by no means the community standard unless they're the only ones you pay attention to...
Or unless you see a screenshot of a question from a different website posted in a meme-sharing forum and expect the comments to offer advice, instead of laughing at the person who shot themselves in the foot and went to a hospital instead of seeking help at the DNC HQ
The cultural elitism comes from years of tinkering with their system since all the information they can find is fragmented and spread around, highly opinionated,’poorly digestible, out of date, and often dangerous.
I feel this in my soul, except about Windows. I've got a handful of machines at work that refuse to update to Windows 10 22H2. They give an error code during the compatibility check. Googling that error code returns dozens of forum posts with hundreds of users and "Microsoft support agents" chiming in. They give the same list of suggestions—that don't work—to fix it. Nobody can say what the error code means, or what the compatibility check checks. The official Microsoft fix is to reinstall.
I don't want to reinstall. The suite of software these computers run would take several hours to reinstall.
This is typical of my experience with Windows. (I'm a Unix/Linux guy.) I look up how to do something in Windows, and with the official Microsoft documentation, one of three things inevitably happens:
I follow the steps and click the things, and it still doesn't work.
I can't follow the steps because one of the things to click is greyed out for some reason.
I can't follow the steps because the documentation refers to an older edition, and Microsoft has removed one of the things to click.
One time, when trying to get Excel to run a mail merge, I ran into all three problems in three attempts.
The same happens with 3rd party sites. They never say the edition of Windows to which their guide refers, and the feature is deprecated or gone. (Most recently it was about getting a Windows 10 start menu behavior back on 11.)
Oh, and since Windows is mainstream, a lot of the information is in the form of AI vomit, and covered in ads and dark patterns.
that they found the wrong information because they have literally no idea what's good or bad, instead of helping, they get shit on.
I don't think anyone's seriously shitting on nooby mistakes, because everyone has done something stupid like that and learned a lesson from it. It's kind of a "cute noob" moment
Except the principles behind linux aren't "being able to customize however you want", that's the principle behind certain distros like Arch. Linux is about being free and open-source, so nobody is beholden to a single entity making sweeping changes that are bad for the community but good for their bottom line.
This isn't a Linux problem this is a society problem people just want to one up everyone In anyway they can and sometimes I dont think we do it consciencely
Can confirm I am a Linux lurker who would love to learn all this cool shit but right now I don't have the time/mental fortitude to wade through all the bullshit and experiment. I already do that enough with power platform at work and I know that I know nothing. It's exhilarating and tiresome. It would be great if we could have some "training wheels" type of community on here to help new users out.
Cool thing is, GPT fixes all the problems with elitist gatekeeping assholes, whether on stack exchange or something random Linux forum. It truly democratizes information.
He uninstalled systemd, now his computer is not doing systemd things anymore by his retelling. Seems like it worked fine. Yet he asks for a solution of a problem. Maybe he needs to state the problem.
But system32 contains the NT kernel as well, so that's worse. Uninstalling your init system on a Linux distro still leaves you with single user mode. You could probably reinstall an init system from there.
On Debian you can actually change init systems. Don't know how hard it is and you are probably meant to install a new one after removing systemd, but it is possible at least.
I mean, it can work out if he installs an alternative init & rc and a wifi-manager first. And then recreates initrd. Maybe needs to migrate some dns stuff too.
I mean if you've never seen or used a car before, and someone from a position of relative authority or trust gave you a very convincing argument that a particular part that you don't understand is easy to remove and you'll benefit from it...
Yeah it's pretty reasonable that the average person might shoot themselves in the foot by letting them remove that part (tell them a command to run).
Windows hss supported slashes in both directions for a very long time. I almost exclusively use forward slashes to reduce mental load when switching between OSes.
Lol this reminds me of a time when I had KDE desktop environment installed on vanilla ubuntu. I thought I didn't really need ubuntu's default desktop environment and decided to 'purge' it. I quickly realized my f up when it deleted so many packages and ui started to act weird, I copied the shell's output to a file just incase, and sure enough I couldn't login with ui on next reboot. I was somehow able to login to shell and with some awk magic I was able to parse the text file to get all the packages I deleted and lo and behold everything worked just fine. Linux let's you f'up your OS but it also let's you fix it, it's just a skill issue.
Linux let's you f'up your OS but it also let's you fix it, it's just a skill issue.
Yeah, there's something about Linux that makes me feel like if something breaks in it, the only reason I can't fix it personally is because I lack the skills to fix the problem. Just feels nice, really.
If your installing, or deleting something and your package manager is modifying more then a few packages: stop, read and think about what your about to do.
I updated my sources.list to something non-existing at some point and run sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove once and it also basically uninstalled everything. But that didn't even matter, I popped in a recovery disk and could reinstall everything. Pretty great to be able to do all that with Linux, fuck everything up in an instant but after a few hours everything is back again
Devuan GNU+Linux is a fork of Debian without systemd that allows users to reclaim control over their system by avoiding unnecessary entanglements and ensuring Init Freedom.
Gotta love this linux rhetoric, man! It's so out there.
I use BTRFS, and it randomly decided to corrupt like half of the system packages on my system after an update, but all I had to do to fix it was boot into a live environment and run a command to reinstall everything on my system. :P
You know that Linux has protection against rm -rf / since a few years ?
Guess it's a sign that Linus got milder on the way, growing old :-)
And the terrible BOFH joke of this grew old and boring as well. Gotta take care about new Linux users.
You can switch seamlessly between systemd and openrc on gentoo. Although it might be worth using one of the debian derivatives in this user's case - not sure they should be messing with their system too much!
Yeah both runit and sysvinit are supported, but packages are no longer required to include sysvinit scripts, so there's no guarantee that all software will work. Most have kept their sysvinit script though.
The main issue will be that systemd does a lot of stuff, so you'd have to install replacements for everything else it does - like a syslog daemon for logging, ntp client for clock syncing, DNS resolver, etc.
MX, always based on latest Debian, is using sysVinit, but you can also boot with systemd if you want, it supports both. MX is pretty popular, simple, fast, Xfce by default, and very up to date on everything. I'm using it for 6 years now, on laptop, PC. Also maybe it's me, but no flatpak, no snap, etc, not needed, for instance latest FF is a standard .deb
We'll just need systemd-kernel and systemd-coreutils in order to create a full systemd os free from Stallman and Torvald tyranny. It'll be glorious! \s