I am curious, does anyone on this list know of examples of such daemons? I
am considering creating and submitting patches for some daemon programs
that I use that do *not* support this mechanism as yet, and am curious if
it is as simple as it looks like it should be.

 - I'm trying to make it so that all my long-lived programs that provide
a service support this. For instance, s6-log as Casper mentioned, but
also s6-[ipc|tcp]server[d], which are the basic building blocks for
simple service implementation.

 - There is a non-negligible amount of existing daemons in the wild that
happen to print a line when they're ready, even though they're not
necessarily aware that printing such a line can be used as readiness
notification. For instance:
   * dbus-daemon has the --print-address=fd option that can be used
to notify readiness (since the address of the bus is only known after
the bus socket is ready).
   * Xorg has the -displayfd option that can also be used for the
same purpose (since it only knows its display once it is ready)
   * Lots of daemons have an option to print a pidfile. If you run
them and give /dev/fd/3 (or whatever your notification-fd is) as a
pidfile, they will trigger the notification mechanism when attempting
to print their pidfile. Be aware, though, that it does not necessarily
mean they're ready; they *should* be, because they should not stamp
their pid once they're certain they're going to provide service, but
they don't have to, because they know their pid as soon as they're
running - and since they're designed badly enough to think a pidfile
is a good thing, it's also very possible that they're printing it too
early. So you have to check with the daemon's source before using the
pidfile option as a readiness check.

 It is definitely as simple as it looks, it was designed to be able to
reuse existing daemon behaviours, and I strongly encourage you to submit
patches to spread the use of the mechanism :)

--
 Laurent

Reply via email to