When systemd first appeared in the Fedora distribution that I use(d) it was the shiny new, but not fully debugged thing. I had more than one nasty hang because of it and why did they have to mess up something that worked, and could be understood by mere mortals?
But let's face it, systemd has now matured. My machines work, recipes for getting things done the systemd way are easily googled, and anyway I rely on it (I assume it's systemd) anyway for the relatively painless multi-seat setup on a big computer that would otherwise not be worth running 24/7.
And maybe this is the best part: Since systemd has completely taken over Linux, and IBM has taken over Fedora and I'm not so sure about the direction that's going (Silverblue? CentOS now being a bleeding-edge testbed?) maybe I should try Debian. It's a more "pure" Linux experience anyway. Surprise! All the hard stuff is the same, almost no pain in switching.
The pure old days of Unix/Linux, where a mere mortal could understand the entire boot/init process, are over. But in those old days you couldn't just plug in an encrypted or NTFS-formatted portable hard disk and expect it to just work either.
I do get the impression that systemd keeps the pain alive by continually absorbing functionality, Borg-like. Service X worked trouble-free for years? Never mind that, use our rewrite. And then you have to wait for that to mature.
Philosophically I prefer the idea of "one tool for the job", and I don't like the idea that systemd has swallowed so many different services (from udev to dhcpd).
But practically? It just works. It is consistent, very well documented, and I have to say that it has saved me a lot of time - writing systemd unit-files is almost a pleasure.
So, while I understand some people have very strong views, I'm kinda OK with systemd having "won".
Maybe in 20 years we'll have something different offered, and people will be hugging their systemd and refusing to move away from it?
systemd is not even close to being "consistent" and "well-documented" enough to be all-around usable. It's not about people having "strong views" about it, it's about a bleeding-edge codebase with a very kludgy design being promoted for use in production systems.
> But in those old days you couldn't just plug in an encrypted or NTFS-formatted portable hard disk and expect it to just work either.
automounting features have been around for ages, they don't depend on systemd. And a system that keeps adding and "absorbing" functionality cannot be described as mature.
The other thing is that I'm finally noticing machines actually booting faster, after years of promise. And one of systemd's biggest frustrations - making shutdown a perilous journey that could hang, just like that other OS that starts with W - seems to have gone recently too. My Raspi400 shuts down in seconds and a couple of slow outdated laptops used by the kids also shut down pretty OK. The main machine is always up of course.
Has it? It is still written in C. That doesn't strike me as mature. That strikes me as vulnerable. Have they considered using a memory safe systems language like Rust? It should be rewritten in Rust, because every new line of C written is a long term liability.
System D hasn’t matured. Nobody even knows when it’ll be finished or what other features it will subsume.
It’s an OS, and that’s fine. But it’s not an OS which I like or need, and it’s way too buggy and unreliable to be used even as a part of systemd/Linux/GNU.
> If you are reading this post you're very much likely not a fan of systemd already
I don't really care either way. I'm using systemd since that's what my OS ships with by default, and I had to learn it. But still curious in Linux distributions in general, so at least a small explainer would be welcome. Is there a reason I should feel strongly about this? If so, would be helpful to have that written up front, because it's not obvious to everyone.
> Now, with Gentoo it's interesting. While the Gentoo handbook says it uses OpenRC as default init system, we received mixed feedback from different people on whether Gentoo is a systemd distribution or not.
Not sure why they made this like an special case while at the same time they mention LFS also gives people the choice of wheter using SystemD or something else.
Is the difference between an OS with one init system and another noticable? I've been running SystemD without hitch for years now. Maybe I am just to casual of a user? Using Guix as a comparision, and trying to write services, it feels similar (execpt its a scheme lisp which is cool), but I cant say I have ever written a systemd service larger than emacsclient.
It's akin to the difference between any Linux and Windows. For most peopleb Windows works well enough and they do not understand or care to even try to understand why anyone would even want to use anything else. They see Linux as frankly inferior.
There is really no point in trying to sell any other point of view or philosophy or priorities to such people. They don't understand, and often think they do understand and judge you to be out of touch and irrational, or at least impractical.
Same exact thing with systemd. It was designed to solve a certain kind of problem, in way that is more or less functional enuogh, and more or less fine enough in a vacuum. But it's not in a vacuum. It's in a preexisting ecosystem, and essentially requires everything else to change to work with it to the exclusion of anything else. (this last is technically deniable, but not in reality. Saying "we don't prevent everyone from doing 2x all future maintenance work" does not meaningfully address the fact that no one will choose to do that. All package maintainers choose a paradigm to support, not both.)
Basically, the biggest problem with systemd is it's an inconsiderate dick.
But if you don't administer a wide variety of systems and a wide variety of software, and don't value that variety, and don't care about the future enough to let it affect your behavior today, then you don't even perceive that inconsideration, and so do not think that systemd, or it's architect, or it's lobbyists, are dicks.
> Is the difference between an OS with one init system and another noticable?
Systemd has lots of good ideas, and is now mature enough in most places. Unfortunately, the authors of systemd have the tendency to replace virtually everything in Linux with their own version, designed for their own purpose, without listening to how other people use those things.
And you can't really disentangle parts of systemd just using a distro.
So system administrators not using Linux for a desktop got tired of constantly fighting the breaking things, and just threw it out completely.
If systemd only was an init system, and had stayed out of the rest (syslog, DNS, network management, directory layout, you name it), and would just have done the init system job really well, it wouldn't really be controversial. But with the "you need to do it my way, I don't give a shit for your use case is, and I don't give a shit if I break your system" attitude shoving it down the throat of everyone, they didn't really make friends with many people who run more complicated systems.
systemd can drastically reduce startup times for some systems (better dependency handling when starting services). Can be valuable for containers when autoscaling.
Anecdotally, my Raspberry Pis running Raspbian/systemd boot in about a minute, while the ones running Void/runit boot in 4 seconds. Perhaps the systemd ones are "doing more", but whatever that functionality is, I don't miss it.
Can someone that uses such a system explain why they went for it and what it brings them? I was just pondering this and I somehow get some "feeling of relief" imaging my machine work without systemd. It just feels some much more lightweight and unixy... But I wonder, why? And is that important?
Artix user here. My system works just like regular rolling arch install. OpenRC for init. What is like is freedom to choose, can choose between OpenRC, SysV, systemd if i really wanted... I do not like some software having hard coded dependencies on systemd and the trouble it brings.
I use Alpine Linux (for containers and VMs only though, not desktop nor laptop) that is part of this list. I think, having systemd on Alpine Linux would just be a waste of space and resources, as Alpine is all about being security focused and lightweight, so less === more.
If Linux were a product "sold" to consumers (that is, if consumer distros were driven by market forces), consumers would put their money where their mouth is and buy a distribution which didn't use systemd, if that were their preference. But consumers don't really buy OSS products, so all they can do is complain instead. Proof that OSS is not a panacea when it comes to solving users' needs; market forces are an equal if a not superior mechanism.
systemd does a great job for the majority of users. Honestly, when booting up a linux system day to day. I wouldn't even notice if you changed it for a different system in the next upgrade.
Its likely the people who care for whom systemD is inadequate is a very small if albeit very vocal minority.
In this case, capitalism wouldn't' necessarily provide any benefit. It would be akin to the coveted modular laptop or phone that trades thinness for longer battery life. There are people screaming for it but not enough to actually support the launch of a product.
Priceless to mention Alpine because of its use of libmusl and BusyBox. BusyBox follows the same model as systemd of one binary and a gazillion uses. It even takes it further.
I wish that systemd was only a replacement for init scripts. I feel like it does a nice job at that, its become a lot easier to deploy a new daemon when compared to writing a robust shell script for each daemon.
On the other hand the logging, cron, network interface management, etc features of systemd I could live without. I can understand why they are there on paper, but IMO they don't actually need to be centralized in systemd. I would prefer some separation.
Personally have no issue using with or without. They all have merit. Would like to see a systemd only distro OS and stack that up against the traditional.
For clarity:
systemd only distro OS === linux kernel + systemd + $DEFAULT_SHELL
Sorry if this is a noob question, but what is the problem with systemd? I run Arch, and have used it for quite a few things, and it seems alright. Is there a specific controversy or is it just preference?
Someone else mentioned the main complaints people have. My specific problem is that it manages to override and break my custom DNS on every update (Debian). It's also makes booting to the login prompt too slow on some older hardware I have, I'm now running Void there because it boots fast enough.
My current problem is that it takes about one minute to configure networking on Ubuntu after waking up from sleep on my workstation. This is s problem with systemd and network manager.
I don't have it as such but would prefer something quicker.
there are two main arguments against it as far as I know:
1. it goes against the "do one thing well" unix philosophy
2. It was written by Lennart Poettering, who also wrote pulseaudio and avahi, which are regarded by some as overcomplicated , buggy and hard to port and maintain.
Admins need to have systemd skills or they'd be out of a job. systemd is here to stay so might as well embrace it if you want to be gainfully employed.
One thing I realized is that, surprisingly, systemd is not so relevant for servers, mainly because abusing docker is better in many cases. Systemd shines with desktops, that needs to dynamically start/stop a lot of services.
1. Devuan (https://www.devuan.org/)
2. Alpine Linux (https://alpinelinux.org/)
3. Artixlinux (https://artixlinux.org/)
4. Void (https://voidlinux.org/)
5. Slackware (http://www.slackware.com/)
6. Funtoo (and Gentoo) (https://www.funtoo.org/Welcome) (https://www.gentoo.org/)
7. GUIX (https://guix.gnu.org/)
8. Linux From Scratch (http://www.linuxfromscratch.org/)
Also (user-submitted):
- antiX (https://antixlinux.com/)
- CRUX (https://crux.nu/)
- PCLinuxOS (https://www.pclinuxos.com/)
- Adélie Linux (https://www.adelielinux.org/)
- Obarun (https://web.obarun.org/)
- KISS Linux (https://k1sslinux.org/)
- LiGurOS (https://liguros.gitlab.io/)