You need to use its init system (systemd), its logging system (systemd-journald, and can be forwarded to old school syslog), and some dbus implementation.
If that's an unreasonable requirement for your usecase, check out OpenRC
I knew a Arch guy who called it Sys-dumb-d. He refused to run systemd.
I could mostly care less. It's.....fine. I miss upstart and it's simplicity. Kind of wish it had been actually developed to maturity, but here we are with an init system that also wants to do DNS.
It's never been popular by anybody except RedHat, that's how they sell courses end certifications.
Still haven't found a way to start something after networking has finished when it takes a bit to set everything up. (and no, not going to limit vlans, tunnels,...)
It's a technical 'solution' for a marketing problem.
That's what you would do with the init scripts, as that environment waits until the previous one is finished. (ie you know you have working network) Systemd is in a hurry and there 'after' seems to mean 'not before' instead of 'after <specified> is finished', so after networking is started it advances to the next in line.
Alas, nop, After= starts a service after networking has started. Somewhere systemd assumes that starting takes x amount of time, which seems to be correct for 1 to a few interfaces, but as soon as you start messing about with vlans, pppoe over 1 vlan and tunnels over pppoe over said vlan (and that's only the outside) that assumption is incorrect.
To link services to a specific interface you need an extra BindsTo=sys-devices-virtual-net-vlan666.device when you want the service to start after vlan666 is actually up. (else it's just started after the depedency is started) Starting vlans/tunnels takes a tad of time, especially when you have 11 vlans, 2 tunnels and a pppoe interface between 1 vlan and the 2 tunnels.
Requires= seems to be for services, BindsTo= for devices.