https://wiki.archlinux.org/title/systemd
Do we love it folks or not?
It's good folks. Everyone says SysV style init systems are more minimalist, but if you have ever actually dug through the init scripts some of them can be pretty dense. In order to properly manage service lifecycles and dependencies, you can end up improvising a lot of complex logic in your scripts without any assistance from that minimalist foundation ("we need to start the synapse server, but first we must start the postgres server, and if it is the first time we need to create some database tables which we can't do until the postgres server is running"). As a Gentoo user, I like OpenRC. I used it for years before systemd was even a thing, but there are tons of edge-cases and dependencies which can be difficult to account for purely in Bash script. Everything is fine if you're installing packages from the package manager. They include their own init scripts and systemd.units, but when you start having to actually mess around with it and plug in a lot of third party software, the scripts are much more of a pain IMO.
Here's a lecture given by FreeBSD developer Benno Rice titled The Tragedy of Systemd
I've never understood any of the arguments against it. I'm mostly a casual user but I find it quite usable. The most common argument I've seen against it is that it is bloated. But, I use a good deal of the components that people complain about.
systemd-boot is a nice little boot loader. it's much simpler to configure than grub, and does everything I need.
systemd-logind seems like a reasonable thing for the service manager to do. I like the per user service management.
systemd-journald I can understand people being annoyed that it stores stuff in binary, but again why wouldn't the thing your using to manage your services also manage their logging.
udev I don't have to interact with it too much (maybe thats good), but I do use it to automount a usb I use as a cryptographic key and it works just fine for that
systemd-timer again this is what I use over cron, maybe cron is better, but i'm already managing services through systemd
I don't understand people's belief that the system should be brought up and managed almost entirely by bash scripts. starting and stopping services when they are needed seems to me to be the same use case as startup and shutdown.
It’s fine. I don’t notice bloat unless it makes something difficult for me, some guy who just writes scripts for fun and runs a handful of servers. Honestly, i can tire of learning new things and systemd has been the standard long enough that I’m happy to leave it.
Just as pulsewire was getting stable arch moves me to 'pipewire' which is pulsewire but for audio and video. Now whenever I screenlock I must restart three (3) systems user services and any application that was playing audio or video.
It was introduced before I started using Linux so I don't know better. I've never had a problem with it but I understand that is has huge mission creep. There's even a
bootd
to replace GRUB. Most distros are going with it so I suspect its easier maintain a distro with systemd than one on OpenRC.It's bloated shit that is very slowly and painfully getting better, just like pulseaudio before it (another bloated piece of crap from Poettering, though this one has now become mostly usable these past few years).
I wish they had kept it as a simple service manager, instead of adding in the whole kitchen sink. The core concept is sound, SysV-style initscripts can be hell to do properly. But it was simple, and systemd could have been simple too, if they had just stuck to replacing /sbin/init.
ONLY USE GENTOO
This systemd shit is fucking cancer. And before you smear me as a loser neckbeard with too much time: No, I am a casual user and I have Gentoo on all my computers. I don't know shit about operating systems.
I am sick of bloated software being on my computer that I will never use to its full potential. I am sick of trying to debug systemd crashes, just to realize that the debug decoder program crashed with it. I am sick of the forced ramfs. I am sick of the awkwardness of configuring deviant kernel configurations.
INSTALL GENTOO, IT IS ONE OF THE ONLY DEBUGGABLE OPERATING SYSTEM OUT THERE. I AM 100% SERIOUS, I will never read an entire book just to fully understand how to configure systemd,
systemd <= gnome <= redhat <= DOD
kinda sus imo, and good alternatives have existed for years now
I like it better than wrangling init.d scripts, especially once you get a bunch of complex inter-dependencies in there. Usually you don't co-locate that stuff on a single server instance anymore (because you'd just handle orchestration via containers, e.g., Docker/Kubernetes), but 7 or 8 years ago, it was handy for spinning up stuff like WildFly/JBOSS in a custom systemd script to say, for example, "this service depends on the network, MySQL/MariaDB, and Samba." Again, pretty much irrelevant with single-purpose containers and better orchestration.
Apparently systemd has it's own container runtime as well in systemd-nspawn, which supports most container formats. Isn't an orchestration system though obviously. Not sure why Kubernetes doesn't support it as a backend.
I don't have a frothing hate for it, it is convenient in many ways, but from what I've heard from a security expert Systemd has become too large to be properly vetted, and the team in charge of the development of Systemd is dismissive of many security issues, so I'm using OpenRC instead.
real linux heads write their own init system :very-smart: :shrug-outta-hecks: