To bad that is now out of fashion. If the BSD software was not portable Linux would not have gotten off the ground.
Is your argument that portability is irrelevant because nothing but (systemd/)GNU/Linux matters, or that service manager in particular don't need to be portable?
One of the pmOS devs wrote a user session service manager [1] but pmOS doesn't use it (yet?). And Alpine as a whole is planning on moving away from OpenRC anyway.
i am working on a implementation of that for openrc for a while now, it's been working nicely so far: https://github.com/OpenRC/openrc/pull/573
I'm not totally sure whether openrc will merge this or not, but I would definitely like to see this be added.
edit: They actually seem to have replied to you while I was writing the original comment.
Other init systems, not so much.
There are no alternatives to systemd, kinda like there are no alternatives to Excel. Some packages solve many of the same problems, but none solve all of them as thoroughly.
I've seen a lot of dangling sessions with systemd actually although I'm not sure what the root cause is.
Hint: man systemd.service, look for TimeoutStopSec.
The irony it's hard there. SystemD it's the only init system which gave me errors trying to shutdown a machine...
>alternatives to Excel
You are right. Both systemd and Excels are turds. Excel mangled genomics data making it unusable and forcing scientists to rename sequences in order to not clash with Excel's internal names. That's utterly crap and a severe step backwards from scientists from the 90's used to be around Unix/GNU-Linux envs where they were utterly free to name whatever thing in almost any way they wanted.
My biggest issue with systemd is the log system. It is so stupidly slow, that I don't think it is possible to make it that slow without purpose. It literally takes minutes to grep though logs on any of my machines with journalctl.
In fact it is so slow. It is faster to first eat the few minutes to extract the logs into a text file. Which I can then grep through in milliseconds.
Oh and the raw text file takes less space than the systemd log database!
With systemd, this comes out of the box.
The user services systemd offers are legitimately cool (though shepherd does it better), I've just never personally understood how people find it "simpler" as a system service manager.
But I still don't get it; have you ever _seen_ a complete init script? These things are hundreds of lines long if you want to account for stuff like PID management and restart capability and isolation.
And you have to do that for every service on your system. And they are not even really portable.
How'd you do that?
I don't see how this is supposed to be more comprehensible or even "simpler" than a 12 lines unit file.
You get the dependencies just like you do with any other socket activation. Web request starts the web server, which connects to and starts the application server, which connects to and starts the data store.
Where else would you expect to declare the dependencies other than the file which defines the service? That's where I would expect to find (and add) the dependencies.
> You get the dependencies just like you do with any other socket activation. Web request starts the web server, which connects to and starts the application server, which connects to and starts the data store.
Fair enough!
Here's one of the first I stumbled upon.
https://github.com/NagiosEnterprises/nagioscore/blob/master/...
It's 288 lines long; the LSB dependency nonsense is 8 lines of that.
Then I looked up one for Postgres;
https://wiki.postgresql.org/wiki/Lsb_conforming_init_script
This one is a whooping 356 lines long, LSB is again about 10 lines long, depending whether you count the header or not.
I don't think the "LSB dependency" argument holds water.
These are not "recent" at all, which is part of the problem. The wiki page largely froze in 2010, several years before the init-d-script innovation; and the people maintaining the nagios script until around 2018 never even tried to make use of init-d-script.
https://packages.debian.org/bookworm/amd64/slapd/download
This init file too is over 200 lines long. I don't know how much of this is avoidable boilerplate, but evidently the Debian package maintainers either don't know about it or they lack the resources to implement it.
We had a nail and all we needed was a hammer, instead we got a hydraulic press.