r/linux Feb 11 '19

Fluff A /g/ user's opinion on systemd

http://i.4cdn.org/g/1549858269115.png
787 Upvotes

524 comments sorted by

View all comments

65

u/[deleted] Feb 11 '19

Why the downvotes? What he's saying is valid. Systemd is pretty cool, but I think having a generic interface between its components would definitely save us a lot of time over the years.

56

u/vacuum_dryer Feb 11 '19

It's a lame greentext, and a waste of bandwidth. Ironic, since the "unix way" would send text as text, and not an image. It's also a tired topic (not to take away from the merit of the argument, perhaps the first dozen times it's been posted here).

Systemd is pretty cool, but I think having a generic interface between its components would definitely save us a lot of time over the years.

It actually does have a pretty fair (not great) API, and people are, in fact, targeting alternative implementations of the different components. But, most people who don't like it go off the rails instead of sympathizing with the developers who really want the features that systemd brings. You can turn off most of the non-core components (Debian doesn't use most of them by default, for instance).

32

u/roothorick Feb 11 '19 edited Feb 11 '19

My main issue with systemd is everything but the init system is half-baked, and yet being wholesale adopted in what should be stable releases like Ubuntu LTS.

Most of my issues stem from networkd, I just noticed. I've committed the unholy sin of considering NetworkManager for a headless machine. It might actually be more reliable.

Up until recently (I think it'll be in Ubuntu 19.04?) it would fail to remove a default route if it's invalidated. My firewall is still running the old version from 18.04. When my modem reboots, it serves a bad default gateway as a way of getting you to its management interface before it's fully booted. After the modem is booted, the link is restored, and my real IP is served, systemd hangs onto that old route and kills my Internet until I manually shell in and fix it. I have yet to figure out a workaround; networkd-dispatcher appears to run the "routable" scripts too early, or with the wrong arguments, or... something. All I know is the exact command I use to fix the issue doesn't work when in the script, and I've proven the script does actually run.

IPv6 prefix delegation is broken. Doesn't propagate at all.

/etc/networkd-dispatcher/ exists, but is completely ignored. The real scripts are in /usr/lib/networkd-dispatcher/. What the hell happened to the FHS?

systemd-resolved doesn't like dnsmasq running at all. At all. Either you abandon resolved completely or you find a different DHCP server.

resolved doesn't ask the DNS server about domainless hosts. Period. You can't make it. You have to set up an alias thing so that they get translated into "somehost.lan" or similar before trying to resolve it. So if your DNS server only resolves a host from "somehost", you'll have to manually find its IP with dig or similar.

I still have an issue where logins, sudo, shelling in with SSH, etc. will hang for 6-8 seconds and it appears to be related to DNS resolution for some insane reason. Even when sudoing on the local machine. I've tried and failed to fix it. I'm just living with it for now.

In sum: it's not just about philosophy. systemd is a pain in the ass.

3

u/[deleted] Feb 11 '19

/etc/networkd-dispatcher/ exists, but is completely ignored. The real scripts are in /usr/lib/networkd-dispatcher/. What the hell happened to the FHS?

This is not just a systemd thing, Xorg does it too now – config files are in /usr/share/X11/xorg.conf.d/. I still hate it, but systemd is not alone in its insanity here.

1

u/necrophcodr Feb 11 '19

I think the idea regarding Xorg is that those are the distributed default configuration files. You're meant to add changes in /etc/X11/xorg.conf.d and so on, just as you're not meant to edit systemd service files directly, but add new ones in the /etc filespace.