After my last post, I started thinking that perhaps systemd is designed to take advantage
of multicore processors during startup. That might explain a lot.
After doing a bit of googling on whether on not different CPU's can access RAM at the
same time, since start up is all about getting things into RAM, it turns out probably not.
In fact, one post indicated that a "boot CPU 0" is used for the whole startup.
While it may be nice to have the system figure out what needs to run in what order, was it
really that hard to execute things in lexical order and just name them appropriately. You
pretty much have to do that math anyhow. In my little unit, my script needs the
firewalld. Both my unit and the firewalld unit want "multiuser". Mine runs
first and dies. I have to expressly tell systemd to run after the firewalld, which
isn't a target.
How is this easier?
On a separate note, I found it really nice that neither the nft docs, nor the firewalld
docs tell you how to persist changes. You have to read the firewall-cmd docs. Google
told me that. Eventually. This is really poor too. I recently realized I can still use
iptables even though the distro dumped me into nft. I don't really see an advantage
to nft and I'm not even sure of firewalld's role. I'm thinking of going back
to iptables.
It is a complex thing to make things simple and a simple thing to make things complex. It
looks like we've really gone down that rabbit hole.