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=240300dcb0adfe90d5c3b35ad9d3b56a3862879a;hp=10ea57c9727496ec26cf16c971e35b22aadf6c0d;hb=23a7f0f721ff4e3b3fd4ed87f7d8e01ebad20093;hpb=f9378423b9758861850748aeb49ae0d3300e56e6 diff --git a/man/sd_listen_fds.xml b/man/sd_listen_fds.xml index 10ea57c97..240300dcb 100644 --- a/man/sd_listen_fds.xml +++ b/man/sd_listen_fds.xml @@ -8,16 +8,16 @@ Copyright 2010 Lennart Poettering systemd is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. systemd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. + Lesser General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Lesser General Public License along with systemd; If not, see . --> @@ -44,12 +44,13 @@ sd_listen_fds - Check for file descriptors passed by the init system. + SD_LISTEN_FDS_START + Check for file descriptors passed by the system manager - #include "sd-daemon.h" + #include <systemd/sd-daemon.h> #define SD_LISTEN_FDS_START 3 @@ -69,7 +70,7 @@ 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 @@ -82,22 +83,21 @@ 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 - recommened to make these checks as loose as possible - without allowing incorrect setups. i.e. often the + 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 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 datagram or stream socket matters a lot for the most - common program logics and should hence be - checked. + common program logics and should be checked. This function call will set the FD_CLOEXEC flag for all passed file descriptors to avoid further @@ -110,10 +110,10 @@ On failure, this call returns a negative errno-style error code. If $LISTEN_FDS/$LISTEN_PID - was not set or not correctly set for this daemon and - hence no file descriptors received 0 is - returned. Otherwise the number of file descriptors - passed is returned, the application may find them + 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 + passed is returned. The application may find them starting with file descriptor SD_LISTEN_FDS_START, i.e. file descriptor 3. @@ -132,44 +132,69 @@ 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. + + and sd_listen_fds() is - implemented in the reference implementation's drop-in + implemented in the reference implementation's sd-daemon.c and - sd-daemon.h files. It is - recommended that applications consuming these APIs - copy the implementation into their source tree. For - more details about the reference implementation see - sd_daemon7 - - If -DDISABLE_SYSTEMD is set during compilation - this function will always return 0 and otherwise - become a NOP. + 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 + + Set by the init system + for supervised processes that use + socket-based activation. This + environment variable specifies the + data + sd_listen_fds() + parses. See above for + details. + + See Also - sd_daemon7, + systemd1, + sd-daemon3, sd_is_fifo3, sd_is_socket3, sd_is_socket_inet3, sd_is_socket_unix3, daemon7, - systemd8, systemd.service5, systemd.socket5