X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=man%2Fsd_listen_fds.xml;h=6999db98049f3ce55907056c46feac06f61fbb0d;hp=5e906870c759c27598e0261d189b292b6057ad89;hb=51cb9d734a182c4892a6b31f58d75489a2ca432b;hpb=976c46f84f896782fa1e839904ab74cc4460c7b0 diff --git a/man/sd_listen_fds.xml b/man/sd_listen_fds.xml index 5e906870c..6999db980 100644 --- a/man/sd_listen_fds.xml +++ b/man/sd_listen_fds.xml @@ -21,7 +21,8 @@ along with systemd; If not, see . --> - + sd_listen_fds @@ -45,7 +46,7 @@ sd_listen_fds SD_LISTEN_FDS_START - Check for file descriptors passed by the init system. + Check for file descriptors passed by the system manager @@ -70,10 +71,10 @@ activation logic. If the unset_environment - parameter is non-zero + parameter is non-zero, sd_listen_fds() will unset the $LISTEN_FDS/$LISTEN_PID - environment variables before returning (regardless + environment variables before returning (regardless of whether the function call itself succeeded or not). Further calls to sd_listen_fds() will then fail, @@ -83,16 +84,16 @@ If a daemon receives more than one file descriptor, they will be passed in the same order as configured in the systemd socket definition - file. Nonetheless it is recommended to verify the + file. Nonetheless, it is recommended to verify the correct socket types before using them. To simplify - this checking the functions + this checking, the functions sd_is_fifo3, sd_is_socket3, sd_is_socket_inet3, sd_is_socket_unix3 - are provided. In order to maximize flexibility it is + are provided. In order to maximize flexibility, it is recommended to make these checks as loose as possible - without allowing incorrect setups. i.e. often the + without allowing incorrect setups. i.e. often, the actual port number a socket is bound to matters little for the service to work, hence it should not be verified. On the other hand, whether a socket is a @@ -112,7 +113,7 @@ $LISTEN_FDS/$LISTEN_PID was not set or was not correctly set for this daemon and hence no file descriptors were received, 0 is - returned. Otherwise the number of file descriptors + returned. Otherwise, the number of file descriptors passed is returned. The application may find them starting with file descriptor SD_LISTEN_FDS_START, i.e. file descriptor 3. @@ -121,54 +122,23 @@ Notes - This function is provided by the reference - implementation of APIs for new-style daemons and - distributed with the systemd package. The algorithm it - implements is simple, and can easily be reimplemented - in daemons if it is important to support this - interface without using the reference - implementation. + Internally, this function checks whether the $LISTEN_PID environment variable equals the daemon PID. If not, it returns - immediately. Otherwise it parses the number passed in + immediately. Otherwise, it parses the number passed in the $LISTEN_FDS environment variable, then sets the FD_CLOEXEC flag for the parsed number of file descriptors starting from - SD_LISTEN_FDS_START. Finally it returns the parsed + SD_LISTEN_FDS_START. Finally, it returns the parsed number. - - For details about the algorithm check the - liberally licensed reference implementation sources: - - resp. - - sd_listen_fds() is - 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 this function will always return 0 and - otherwise become a NOP. Environment - + $LISTEN_PID $LISTEN_FDS