Vincent Bernat <ber...@debian.org> writes: > inetd uses stdin/stdout to communicate with the daemon and have to > launch one instance for each client connecting. systemd.socket pass a > regular listening socket on first connection to the daemon and the > daemon can then serve multiple clients.
I believe the wait option for at least xinetd behaves in roughly the same way, although it's normally only used for UDP services. There seems to be a clear infrastructure gap for the non-systemd world here that's crying out for some inetd-style program that implements the equivalent of systemd socket activation and socket passing using the same protocol, so that upstreams can not care whether the software is started by systemd or by that inetd, and provides an easy-to-configure way for Debian packages to indicate this should be used if systemd isn't in play. It doesn't seem like it would be too difficult to implement such a thing, but I don't think it already exists. I believe the convention in the runit/daemontools world is to decide this is not an important problem to solve and lots of small running daemons is not something that needs to be avoided, and to use tcpserver or some equivalent that behaves like inetd for a single service. Even here, though, I'm not sure if any of those implementations use the same socket passing protocol as systemd, and I'm not sure if they're yet trivial to configure as part of Debian packaging. -- Russ Allbery (r...@debian.org) <http://www.eyrie.org/~eagle/>