first child, so that only the second
child (the actual daemon process)
stays around. This ensures that the
first child, so that only the second
child (the actual daemon process)
stays around. This ensures that the
<function>exit()</function> in the
original process. The process that
invoked the daemon must be able to
<function>exit()</function> in the
original process. The process that
invoked the daemon must be able to
<function>exit()</function> happens
after initialization is complete and
all external communication channels
<function>exit()</function> happens
after initialization is complete and
all external communication channels
compatibility with SysV systems should
implement the scheme pointed out
above. However, it is recommended to make this
compatibility with SysV systems should
implement the scheme pointed out
above. However, it is recommended to make this
command line argument, to ease debugging as
well as to simplify integration into systems
using systemd.</para>
command line argument, to ease debugging as
well as to simplify integration into systems
using systemd.</para>
for details.</para></listitem>
<listitem><para>As much as possible,
for details.</para></listitem>
<listitem><para>As much as possible,
functionality to limit the access of
the daemon to files, services and
other resources. i.e. in the case of
functionality to limit the access of
the daemon to files, services and
other resources. i.e. in the case of
creating and binding them themselves. For
details about the programming interfaces for
this scheme provided by systemd see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
creating and binding them themselves. For
details about the programming interfaces for
this scheme provided by systemd see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
details about porting existing daemons to
socket-based activation see below. With
minimal effort it is possible to implement
details about porting existing daemons to
socket-based activation see below. With
minimal effort it is possible to implement
systemd, kernel devices appearing in the
sysfs/udev device tree can be exposed as units
if they are tagged with the string
systemd, kernel devices appearing in the
sysfs/udev device tree can be exposed as units
if they are tagged with the string
kind of unit they may then pull in other units
when activated (i.e. Plugged in) and thus
implement device-based activation. Systemd
kind of unit they may then pull in other units
when activated (i.e. Plugged in) and thus
implement device-based activation. Systemd
<function>sd_listen_fds()</function> returns a
positive value), skip the socket creation step
and use the passed sockets. Secondly, ensure
<function>sd_listen_fds()</function> returns a
positive value), skip the socket creation step
and use the passed sockets. Secondly, ensure
AF_UNIX sockets used in the socket-based
activation are not removed when the daemon
shuts down, if sockets have been
AF_UNIX sockets used in the socket-based
activation are not removed when the daemon
shuts down, if sockets have been
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,