3 ms·
Until it doesn't. Until very recently having wrong permission on one of the networkd config files would result in networkd ignoring the rest of the perfectly r
by megous 7y ago
Until it doesn't.
Until very recently having wrong permission on one of the networkd config files would result in networkd ignoring the rest of the perfectly readable network configuration files too, cutting off all network connectivity. (Systemd also requested the permission change iself.)
Currently there's a bug where if you have a bridge and all interfaces are disconnected from the bridge (I use hot-pluggable USB network interfaces) when you re-connect them, networkd will keep the bridge off. If you restart systemd-networkd it will fix itself.
I can name at least two instances already where I lost networking in my entire SBC farm, and had to pop out all microSD cards and fix the breakage manually, just because of systemd-networkd bugs. And I don't do anything crazy, just a single ethernet interface and two overlay wireguard networks, and mostly default config.
And fixing it yourself is not easy. I can do C coding perfectly fine, but I run 3 different CPU archs, so fixing it myself means compiling (3 times) and distributing my own systemd version to all my machines until upstream fixes the bug. It's not pleasant, nor easy.
I certainly understand people who miss having an ability to more readily script the system startup/network config.
- megous 7y agoI'd like something like systemd, but with all high-level internals written in a embedded scripting language.
- bitwize 7y agoMight want to look into GNU Shepherd. The whole thing is written in Scheme.
- megous 7y agoIt seems to have a very limited scope of just managing services. I sort of like that systemd is more tightly integrated with Linux and for example listens on netlink for network changes, or device hotplug events, or on input events for (power) button events, and allows to reconfigure the system based on changes dynamically, etc.
- michaelmrose 7y agoMaybe someone should extend shepherd.
- rurban 7y agoinit.d was nice, using shell scripts. readable, editable, clean, extendable. I liked that
- genghizkhan 7y agoJust not maintainable, which is why distros switched away.
- ChristianBundy 7y agoTo be fair, this seems like an illustration of GP's point: > complex corner-cases that only a a very tech-savvy user could generate in the first place I agree that an init system should work on complex corner-cases, but systemd remains popular because it works for most people most of the time. Tangent: have you found an init system that you like the most? I've only used four or five init systems and don't have any super strong opinions -- maybe because I'm not running and SBC farm. :~)
- megous 7y agoHaving a bridge or wireguard interface and following suggestions in system logs is not really a complex corner case. At least I don't think so. I like systemd and use it everywhere (I use Arch Linux / Arch Linux ARM mostly). I just don't think it needs to be painted all pink as "Just Works[tm]" software.
- kissgyorgy 7y agonobody talked about systemd-networkd, that's a separate project and binary.
- kayfox 7y agoI've also seen it either not bring up the firewall (load iptables rules) or suddenly decide to take it down (remove the rules). I'm not sure why it did that, as I didn't have time to dig into the why while trying to deal with the result.
- megous 7y agoThere was recently a bug in nftables, that caused some configurations to not load at all. But I'm not aware of anything iptables related. I don't think systemd handles iptables at all internally, it's just another service.