<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="sd-daemon"
  xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>sd-daemon</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>sd-daemon</refentrytitle>
    <manvolnum>3</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>sd-daemon</refname>
    <refname>SD_EMERG</refname>
    <refname>SD_ALERT</refname>
    <refname>SD_CRIT</refname>
    <refname>SD_ERR</refname>
    <refname>SD_WARNING</refname>
    <refname>SD_NOTICE</refname>
    <refname>SD_INFO</refname>
    <refname>SD_DEBUG</refname>
    <refpurpose>APIs for
    new-style daemons</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
    </funcsynopsis>

    <cmdsynopsis>
      <command>pkg-config --cflags --libs libsystemd</command>
    </cmdsynopsis>

  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><filename>sd-daemon.h</filename> provides APIs for new-style
    daemons, as implemented by the
    <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    service manager.</para>

    <para>See
    <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_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>

    <programlisting>#define SD_EMERG   "&lt;0&gt;"  /* system is unusable */
#define SD_ALERT   "&lt;1&gt;"  /* action must be taken immediately */
#define SD_CRIT    "&lt;2&gt;"  /* critical conditions */
#define SD_ERR     "&lt;3&gt;"  /* error conditions */
#define SD_WARNING "&lt;4&gt;"  /* warning conditions */
#define SD_NOTICE  "&lt;5&gt;"  /* normal but significant condition */
#define SD_INFO    "&lt;6&gt;"  /* informational */
#define SD_DEBUG   "&lt;7&gt;"  /* debug-level messages */</programlisting>

    <para>These prefixes are intended to be used in conjunction with stderr-based logging (or stdout-based
    logging) as implemented by systemd. If a systemd service definition file is configured with
    <varname>StandardError=journal</varname> or <varname>StandardError=kmsg</varname> (and similar with
    <varname>StandardOutput=</varname>), these prefixes can be used to encode a log level in lines
    printed. This is similar to the kernel <function>printk()</function>-style logging. See
    <citerefentry><refentrytitle>klogctl</refentrytitle><manvolnum>2</manvolnum></citerefentry> for more
    information.</para>

    <para>The log levels are identical to
    <citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>'s
    log level system. To use these prefixes simply prefix every line
    with one of these strings. A line that is not prefixed will be
    logged at the default log level SD_INFO.</para>

    <example>
      <title>Hello World</title>

      <para>A daemon may log with the log level NOTICE by issuing this
      call:</para>

      <programlisting>fprintf(stderr, SD_NOTICE "Hello World!\n");</programlisting>
    </example>
  </refsect1>

  <xi:include href="libsystemd-pkgconfig.xml" />

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <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_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
      <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>
