X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsd_notify.xml;h=35f6f71ab37b00a6919e6912bd00e4ed4b648cc3;hp=346ec8f90b42d04a306eab914788885a296a3ea0;hb=9b15b7846d4de01bb5d9700a24077787e984e8ab;hpb=0675cc4a02dfa3e7abc47d0c2117bf413b1d7698 diff --git a/man/sd_notify.xml b/man/sd_notify.xml index 346ec8f90..35f6f71ab 100644 --- a/man/sd_notify.xml +++ b/man/sd_notify.xml @@ -21,7 +21,8 @@ along with systemd; If not, see . --> - + sd_notify @@ -45,7 +46,7 @@ sd_notify sd_notifyf - Notify service manager about start-up completion and other daemon status changes + Notify service manager about start-up completion and other service status changes @@ -69,17 +70,17 @@ Description - sd_notify() shall be called - by a daemon to notify the init system about status - changes. It can be used to send arbitrary information, - encoded in an environment-block-like string. Most - importantly it can be used for start-up completion - notification. + sd_notify() may be called + by a service to notify the service manager about + state changes. It can be used to send arbitrary + information, encoded in an environment-block-like + string. Most importantly it can be used for start-up + completion notification. If the unset_environment - parameter is non-zero sd_notify() + parameter is non-zero, sd_notify() will unset the $NOTIFY_SOCKET - environment variable before returning (regardless + environment variable before returning (regardless of whether the function call itself succeeded or not). Further calls to sd_notify() will then fail, but @@ -87,7 +88,7 @@ processes. The state parameter - should contain an newline-separated list of variable + should contain a newline-separated list of variable assignments, similar in style to an environment block. A trailing newline is implied if none is specified. The string may contain any kind of variable @@ -98,58 +99,87 @@ READY=1 - Tells the init system - that daemon startup is finished. This - is only used by systemd if the service - definition file has Type=notify - set. The passed argument is a boolean - "1" or "0". Since there is little - value in signalling non-readiness, the - only value daemons should send is - "READY=1". + Tells the service + manager that service startup is + finished. This is only used by systemd + if the service definition file has + Type=notify set. Since there is little + value in signaling non-readiness, the + only value services should send is + READY=1 + (i.e. READY=0 is + not defined). + + + + RELOADING=1 + + Tells the service manager + that the service is reloading its + configuration. This is useful to allow + the service manager to track the service's + internal state, and present it to the + user. Note that a service that sends + this notification must also send a + READY=1 + notification when it completed + reloading its + configuration. + + + + STOPPING=1 + + Tells the service manager + that the service is beginning its + shutdown. This is useful to allow the + service manager to track the service's + internal state, and present it to the + user. STATUS=... Passes a single-line - status string back to the init system - that describes the daemon state. This + UTF-8 status string back to the service manager + that describes the service state. This is free-form and can be used for various purposes: general state feedback, fsck-like programs could pass completion percentages and failing programs could pass a human readable error message. Example: - "STATUS=Completed 66% of file system - check..." + STATUS=Completed 66% of file + system + check... ERRNO=... - If a daemon fails, the + If a service fails, the errno-style error code, formatted as - string. Example: "ERRNO=2" for + string. Example: ERRNO=2 for ENOENT. BUSERROR=... - If a daemon fails, the + If a service fails, the D-Bus error-style error code. Example: - "BUSERROR=org.freedesktop.DBus.Error.TimedOut" + BUSERROR=org.freedesktop.DBus.Error.TimedOut MAINPID=... The main pid of the - daemon, in case the init system did + service, in case the service manager did not fork off the process itself. Example: - "MAINPID=4711" + MAINPID=4711 @@ -162,13 +192,12 @@ WatchdogSec= is enabled for it. See systemd.service5 - for details. It is recommended to send - this message if the - WATCHDOG_USEC= - environment variable has been set for - the service process, in every half the - time interval that is specified in the - variable. + for information how to enable this + functionality and + sd_watchdog_enabled3 + for the details of how the service can + check if the the watchdog is enabled. + @@ -178,7 +207,7 @@ clashes. Note that systemd will accept status data sent - from a daemon only if the + from a service only if the NotifyAccess= option is correctly set in the service definition file. See systemd.service5 @@ -197,68 +226,37 @@ errno-style error code. If $NOTIFY_SOCKET was not set and hence no status data could be sent, 0 is returned. If - the status was sent these functions return with a + the status was sent, these functions return with a positive return value. In order to support both, init systems that implement this scheme and those which - don't, it is generally recommended to ignore the return + do not, it is generally recommended to ignore the return value of this call. Notes - These functions are provided by the reference - implementation of APIs for new-style daemons and - distributed with the systemd package. The algorithms - they implement are simple, and can easily be - reimplemented in daemons if it is important to support - this interface without using the reference - implementation. + Internally, these functions send a single datagram with the state string as payload to the - AF_UNIX socket referenced in the + AF_UNIX socket referenced in the $NOTIFY_SOCKET environment variable. If the first character of - $NOTIFY_SOCKET is @ the string is + $NOTIFY_SOCKET is @, the string is understood as Linux abstract namespace socket. The datagram is accompanied by the process credentials of - the sending daemon, using SCM_CREDENTIALS. - - For details about the algorithms check the - liberally licensed reference implementation sources: - - resp. - - sd_notify() and - sd_notifyf() are implemented in - the reference implementation's - sd-daemon.c and - sd-daemon.h files. These - interfaces are available as shared library, which can - be compiled and linked to with the - libsystemd-daemon - pkg-config1 - file. Alternatively, applications consuming these APIs - may copy the implementation into their source tree. For - more details about the reference implementation see - sd-daemon3. - - If the reference implementation is used as - drop-in files and -DDISABLE_SYSTEMD is set during - compilation these functions will always return 0 and - otherwise become a NOP. + the sending service, using SCM_CREDENTIALS. Environment - + $NOTIFY_SOCKET - Set by the init system + Set by the service manager for supervised processes for status and start-up completion notification. This environment variable @@ -275,9 +273,9 @@ Start-up Notification - When a daemon finished starting up, it + When a service finished starting up, it might issue the following call to notify - the init system: + the service manager: sd_notify(0, "READY=1"); @@ -285,7 +283,7 @@ Extended Start-up Notification - A daemon could send the following after + A service could send the following after completing initialization: sd_notifyf(0, "READY=1\n" @@ -297,7 +295,7 @@ Error Cause Notification - A daemon could send the following shortly before exiting, on failure + A service could send the following shortly before exiting, on failure sd_notifyf(0, "STATUS=Failed to start up: %s\n" "ERRNO=%i", @@ -312,7 +310,8 @@ systemd1, sd-daemon3, daemon7, - systemd.service5 + systemd.service5, + sd_watchdog_enabled3