From 0a39023fd7229371dd3e505208a1c0e073414ac2 Mon Sep 17 00:00:00 2001 From: Laurent Bercot Date: Mon, 15 Jun 2015 18:27:25 +0000 Subject: - Readiness notification support in s6-supervise - s6-notifywhenup deprecated - Change abundantly documented - rc for 2.1.4.0 --- doc/notifywhenup.html | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'doc/notifywhenup.html') diff --git a/doc/notifywhenup.html b/doc/notifywhenup.html index 6f9b06b..9a288ac 100644 --- a/doc/notifywhenup.html +++ b/doc/notifywhenup.html @@ -60,19 +60,16 @@ against the s6 library or use any s6-specific construct: daemons can simply write a line to a file descriptor of their choice, then close that file descriptor, when they're ready to serve. This is a generic mechanism that some daemons already implement. -The administrator can -then run the daemon under s6-notifywhenup, -which will properly catch the daemon's message and update a state file -itself, then notify all the subscribers -with a 'U' event, meaning that the service is now up.
- Note that there is still a small race condition remaining: -if the daemon writes a line then instantly dies, and the supervisor -picks up the death before the s6-notifywhenup -program picks up the line, it is possible for the event sequence written -to the fifodir to be wrong - 'd' before 'U'. This should be extremely -rare, but unfortunately the race condition is unavoidable. The only -way to be absolutely race-free is to have the daemon perform its -readiness notification itself, which requires specific support. +

+ +

+ s6 supports that mechanism natively: when the +service directory for the daemon contains +a valid notification-fd file, the daemon's supervisor, i.e. the +s6-supervise program, will properly catch +the daemon's message, update a state file (supervise/ready), then +then notify all the subscribers +with a 'U' event, meaning that the service is now up and ready.

-- cgit v1.2.3