It's now part of libsystemd, and should be used like any other API.
<refname>SD_NOTICE</refname>
<refname>SD_INFO</refname>
<refname>SD_DEBUG</refname>
- <refpurpose>Reference implementation of APIs for
+ <refpurpose>APIs for
new-style daemons</refpurpose>
</refnamediv>
</funcsynopsis>
<cmdsynopsis>
- <command>pkg-config --cflags --libs libsystemd-daemon</command>
+ <command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
- <para><filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> provide a reference
- implementation of various APIs for new-style daemons,
- as implemented by the
+ <para><filename>sd-daemon.h</filename> provide APIs
+ for new-style daemons, as implemented by the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
init system.</para>
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>
+ <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the functions
implemented. In addition to these functions, a couple
of logging prefixes are defined as macros:</para>
<refsect1>
<title>Notes</title>
- <para>These interfaces 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. See the respective function man pages
- for details.</para>
-
- <para>In addition, for details about the algorithms,
- check the liberally licensed reference implementation
- sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para>These APIs are implemented in the reference
- implementation's <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source tree,
- either verbatim or in excerpts.</para>
-
- <para>The functions directly related to new-style
- daemons become NOPs when -DDISABLE_SYSTEMD is set
- during compilation and the reference implementation is
- used as drop-in files. In addition, if
- <filename>sd-daemon.c</filename> is compiled on
- non-Linux systems they become NOPs.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
</refsect1>
<refsect1>
<refsect1>
<title>Notes</title>
- <para>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.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
<para>Internally, this function checks whether the
directory <filename>/run/systemd/system/</filename>
implemented trivially in shell or any other
language.</para>
- <para>For details about the algorithm check the
- liberally licensed reference implementation sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink
- url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para><function>sd_booted()</function> is implemented
- in the reference implementation's
- <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source
- tree. For more details about the reference
- implementation, see
- <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>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.</para>
</refsect1>
<refsect1>
<refsect1>
<title>Notes</title>
- <para>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 they can easily be
- reimplemented in daemons if it is important to support
- this interface without using the reference
- implementation.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
<para>Internally, these function use a combination of
<filename>fstat()</filename> and
<filename>getsockname()</filename> to check the file
descriptor type and where it is bound to.</para>
-
- <para>For details about the algorithms, check the
- liberally licensed reference implementation sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink
- url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para><function>sd_is_fifo()</function> and the
- related functions are implemented in the reference
- implementation's <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source
- tree. For more details about the reference
- implementation, see
- <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>These functions continue to work as described,
- even if -DDISABLE_SYSTEMD is set during
- compilation.</para>
</refsect1>
<refsect1>
<refsect1>
<title>Notes</title>
- <para>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.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
<para>Internally, this function checks whether the
<varname>$LISTEN_PID</varname> environment variable
number of file descriptors starting from
SD_LISTEN_FDS_START. Finally, it returns the parsed
number.</para>
-
- <para>For details about the algorithm check the
- liberally licensed reference implementation sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink
- url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para><function>sd_listen_fds()</function> is
- implemented in the reference implementation's
- <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source
- tree. For more details about the reference
- implementation, see
- <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>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.</para>
</refsect1>
<refsect1>
<refsect1>
<title>Notes</title>
- <para>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.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
<para>Internally, these functions send a single
datagram with the state string as payload to the
understood as Linux abstract namespace socket. The
datagram is accompanied by the process credentials of
the sending daemon, using SCM_CREDENTIALS.</para>
-
- <para>For details about the algorithms check the
- liberally licensed reference implementation sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink
- url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para><function>sd_notify()</function> and
- <function>sd_notifyf()</function> are implemented in
- the reference implementation's
- <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source tree. For
- more details about the reference implementation, see
- <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>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.</para>
</refsect1>
<refsect1>
<refsect1>
<title>Notes</title>
- <para>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.</para>
+ <para>These APIs are implemented as a shared library,
+ which can be compiled and linked to with the
+ <constant>libsystemd</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ file.</para>
<para>Internally, this functions parses the
<varname>$WATCHDOG_PID</varname> and
that case, the variables were set for a different
process further up the process tree.</para>
- <para>For details about the algorithm, check the
- liberally licensed reference implementation sources:
- <ulink url="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c"/>
- and <ulink
- url="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h"/></para>
-
- <para><function>sd_watchdog_enabled()</function> is
- implemented in the reference implementation's
- <filename>sd-daemon.c</filename> and
- <filename>sd-daemon.h</filename> files. These
- interfaces are available as a shared library, which can
- be compiled and linked to with the
- <constant>libsystemd-daemon</constant> <citerefentry><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- file. Alternatively, applications consuming these APIs
- may copy the implementation into their source
- tree. For more details about the reference
- implementation, see
- <citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
-
- <para>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.</para>
</refsect1>
<refsect1>