1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-03-08 20:58:20 +03:00

man: add a note that FDSTORE=1 requires epoll-compatible fds

Let's say that this was not obvious from our man page.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2016-10-22 20:32:59 -04:00
parent 16f70d6362
commit 99bdcdc7fc
2 changed files with 21 additions and 24 deletions

View File

@ -205,28 +205,25 @@
<varlistentry> <varlistentry>
<term>FDSTORE=1</term> <term>FDSTORE=1</term>
<listitem><para>Stores additional file descriptors in the <listitem><para>Stores additional file descriptors in the service manager. File
service manager. File descriptors sent this way will be descriptors sent this way will be maintained per-service by the service manager
maintained per-service by the service manager and be passed and will be passed again using the usual file descriptor passing logic on the next
again using the usual file descriptor passing logic on the invocation of the service, see
next invocation of the service (see <citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>). This is useful for implementing service restart schemes where services serialize
This is useful for implementing service restart schemes where their state to <filename>/run</filename>, push their file descriptors to the
services serialize their state to <filename>/run</filename>, system manager, and are then restarted, retrieving their state again via socket
push their file descriptors to the system manager, and are passing and <filename>/run</filename>. Note that the service manager will accept
then restarted, retrieving their state again via socket messages for a service only if <varname>FileDescriptorStoreMax=</varname> is set
passing and <filename>/run</filename>. Note that the service to non-zero for it (defaults to zero, see
manager will accept messages for a service only if <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
<varname>FileDescriptorStoreMax=</varname> is set to non-zero File descriptors must be pollable, see
for it (defaults to zero). See <citerefentry><refentrytitle>epoll_ctl</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry> Multiple arrays of file descriptors may be sent in separate messages, in which
for details. Multiple arrays of file descriptors may be sent case the arrays are combined. Note that the service manager removes duplicate
in separate messages, in which case the arrays are combined. file descriptors before passing them to the service. Use
Note that the service manager removes duplicate file <function>sd_pid_notify_with_fds()</function> to send messages with
descriptors before passing them to the service. Use <literal>FDSTORE=1</literal>, see below.</para></listitem>
<function>sd_pid_notify_with_fds()</function> to send messages
with <literal>FDSTORE=1</literal>, see
below.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

@ -852,13 +852,13 @@
serialized to <filename>/run</filename> and the file serialized to <filename>/run</filename> and the file
descriptors passed to the service manager, to allow restarts descriptors passed to the service manager, to allow restarts
without losing state. Defaults to 0, i.e. no file descriptors without losing state. Defaults to 0, i.e. no file descriptors
may be stored in the service manager by default. All file may be stored in the service manager. All file
descriptors passed to the service manager from a specific descriptors passed to the service manager from a specific
service are passed back to the service's main process on the service are passed back to the service's main process on the
next service restart. Any file descriptors passed to the next service restart. Any file descriptors passed to the
service manager are automatically closed when POLLHUP or service manager are automatically closed when POLLHUP or
POLLERR is seen on them, or when the service is fully stopped POLLERR is seen on them, or when the service is fully stopped
and no job queued or being executed for it.</para></listitem> and no job is queued or being executed for it.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>