Hacker News new | ask | show | jobs
by WesolyKubeczek 837 days ago
Also, do you happen to know how, say, macOS manages service dependencies with launchd and makes sure everything is running?

It doesn’t.

It explicitly says in the scarce documentation that it doesn’t care, and that interdependent services should use IPC and in general figure it out between themselves. launchd only launches the processes as soon as it can, and restarts them based on a boolean flag if they die. That’s all.

systemd at least gives you something to base your expectations on.

1 comments

Adding a mechanism for dependencies which kind of sometimes sort of works but doesn't actually work is much much worse than just not implementing anything at all as you are much less likely to get anyone too put in the work required to do the hard thing they need to do for it to actually work.
It does work: an init system shouldn’t have a knowledge of what constitutes a process being "ready", but it knows damn well if its executable is running or not.

Any dependent/client task should be able to wait or retry. If it cannot retry on its own, systemd has a facility for this, too.

At this point it really looks like after having some nice things you are running out of legitimate complaints and want a pony on top.