Stuart Longland:
> I've used the OpenVPN init script as a template for creating my init
scripts, [...]
And that's the point at which you went wrong. OpenVPN was one of the
earliest things converted to systemd with its service management set up
very differently to the way that its previous System 5 rc script
worked. It was a templatized service unit back in 2011. *That* is the
example that you should have worked from.
* http://unix.stackexchange.com/a/206490/5132
Stuart Longland:
> Is there some way for the init script to tell systemd to tell
systemd what subservices are valid or do I have to maintain specialised
scripts for systemd?
And this is where you're going wrong, too. Stop thinking in terms of
writing init scripts in the first place. You aren't writing *any*
scripts for systemd. You are writing service units. Start from that
point when you think about this. Map out your services, and write
service units to describe each of them. Use templates and targets as
appropriate.