SD_CRIT.html 8.53 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>sd-daemon</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
  </style><a href="index.html">Index </a>·
  <a href="systemd.directives.html">Directives </a>·
  <a href="../python-systemd/index.html">Python </a>·
  <a href="../libudev/index.html">libudev </a>·
Michael Biebl's avatar
Michael Biebl committed
22 23
  <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 208</span><hr><div class="refentry"><a name="sd-daemon"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd-daemon, SD_EMERG, SD_ALERT, SD_CRIT, SD_ERR, SD_WARNING, SD_NOTICE, SD_INFO, SD_DEBUG — Reference implementation of APIs for
                new-style daemons</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;systemd/sd-daemon.h&gt;</pre></div><div class="cmdsynopsis"><p><code class="command">pkg-config --cflags --libs libsystemd-daemon</code> </p></div></div><div class="refsect1"><a name="idm274682004384"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description"></a></h2><p><code class="filename">sd-daemon.c</code> and
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
                <code class="filename">sd-daemon.h</code> provide a reference
                implementation of various APIs for new-style daemons,
                as implemented by the
                <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>
                init system.</p><p>See
                <a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
                <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
                <a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>,
                <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>
                for more information about the functions
                implemented. In addition to these functions a couple
                of logging prefixes are defined as macros:</p><pre class="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 */</pre><p>These prefixes are intended to be used in
                conjunction with STDERR-based logging as implemented
                by systemd. If a systemd service definition file is
                configured with <code class="varname">StandardError=syslog</code>
Michael Biebl's avatar
Michael Biebl committed
46
                or <code class="varname">StandardError=kmsg</code>, these
47 48 49 50 51 52 53 54 55
                prefixes can be used to encode a log level in lines
                printed. This is similar to the kernel
                <code class="function">printk()</code>-style logging. See
                <a href="klogctl.html"><span class="citerefentry"><span class="refentrytitle">klogctl</span>(2)</span></a>
                for more information.</p><p>The log levels are identical to
                <a href="syslog.html"><span class="citerefentry"><span class="refentrytitle">syslog</span>(3)</span></a>'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
Michael Biebl's avatar
Michael Biebl committed
56 57
                SD_INFO.</p><div class="example"><a name="idm274685891936"></a><p class="title"><b>Example 1. Hello World</b></p><div class="example-contents"><p>A daemon may log with the log level
                        NOTICE by issuing this call:</p><pre class="programlisting">fprintf(stderr, SD_NOTICE "Hello World!\n");</pre></div></div><br class="example-break"></div><div class="refsect1"><a name="idm274685889856"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes"></a></h2><p>These interfaces are provided by the reference
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
                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.</p><p>In addition, for details about the algorithms
                check the liberally licensed reference implementation
                sources:
                <a class="ulink" href="http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c" target="_top">http://cgit.freedesktop.org/systemd/systemd/plain/src/libsystemd-daemon/sd-daemon.c</a>
                and <a class="ulink" href="http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h" target="_top">http://cgit.freedesktop.org/systemd/systemd/plain/src/systemd/sd-daemon.h</a></p><p>These APIs are implemented in the reference
                implementation's <code class="filename">sd-daemon.c</code> and
                <code class="filename">sd-daemon.h</code> files. These
                interfaces are available as shared library, which can
                be compiled and linked to with the
Michael Biebl's avatar
Michael Biebl committed
73
                <code class="constant">libsystemd-daemon</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
74 75 76 77 78 79 80
                file. Alternatively, applications consuming these APIs
                may copy the implementation into their source tree,
                either verbatim or in excerpts.</p><p>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
                <code class="filename">sd-daemon.c</code> is compiled on
Michael Biebl's avatar
Michael Biebl committed
81
                non-Linux systems they become NOPs.</p></div><div class="refsect1"><a name="idm274685881984"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also"></a></h2><p>
82 83 84 85 86 87 88 89 90 91 92 93
                        <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
                        <a href="sd_listen_fds.html"><span class="citerefentry"><span class="refentrytitle">sd_listen_fds</span>(3)</span></a>,
                        <a href="sd_notify.html"><span class="citerefentry"><span class="refentrytitle">sd_notify</span>(3)</span></a>,
                        <a href="sd_booted.html"><span class="citerefentry"><span class="refentrytitle">sd_booted</span>(3)</span></a>,
                        <a href="sd_is_fifo.html"><span class="citerefentry"><span class="refentrytitle">sd_is_fifo</span>(3)</span></a>,
                        <a href="daemon.html"><span class="citerefentry"><span class="refentrytitle">daemon</span>(7)</span></a>,
                        <a href="systemd.service.html"><span class="citerefentry"><span class="refentrytitle">systemd.service</span>(5)</span></a>,
                        <a href="systemd.socket.html"><span class="citerefentry"><span class="refentrytitle">systemd.socket</span>(5)</span></a>,
                        <a href="fprintf.html"><span class="citerefentry"><span class="refentrytitle">fprintf</span>(3)</span></a>,
                        <a href="sd-readahead.html"><span class="citerefentry"><span class="refentrytitle">sd-readahead</span>(3)</span></a>,
                        <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
                </p></div></div></body></html>