1:255.16-alt1
[systemd_ALT.git] / man / sd-daemon.xml
blob6cd06a81e3ac56839dac371185c3234576265851
1 <?xml version='1.0'?> <!--*-nxml-*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4 <!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
6 <refentry id="sd-daemon"
7   xmlns:xi="http://www.w3.org/2001/XInclude">
9   <refentryinfo>
10     <title>sd-daemon</title>
11     <productname>systemd</productname>
12   </refentryinfo>
14   <refmeta>
15     <refentrytitle>sd-daemon</refentrytitle>
16     <manvolnum>3</manvolnum>
17   </refmeta>
19   <refnamediv>
20     <refname>sd-daemon</refname>
21     <refname>SD_EMERG</refname>
22     <refname>SD_ALERT</refname>
23     <refname>SD_CRIT</refname>
24     <refname>SD_ERR</refname>
25     <refname>SD_WARNING</refname>
26     <refname>SD_NOTICE</refname>
27     <refname>SD_INFO</refname>
28     <refname>SD_DEBUG</refname>
29     <refpurpose>APIs for
30     new-style daemons</refpurpose>
31   </refnamediv>
33   <refsynopsisdiv>
34     <funcsynopsis>
35       <funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
36     </funcsynopsis>
38     <cmdsynopsis>
39       <command>pkg-config --cflags --libs libsystemd</command>
40     </cmdsynopsis>
42   </refsynopsisdiv>
44   <refsect1>
45     <title>Description</title>
47     <para><filename>sd-daemon.h</filename> is part of
48     <citerefentry><refentrytitle>libsystemd</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
49     provides APIs for new-style daemons, as implemented by the
50     <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry> service
51     manager.</para>
53     <para>See
54     <citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
55     <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
56     <citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
57     <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
58     <citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
59     for more information about the functions implemented. In addition
60     to these functions, a couple of logging prefixes are defined as
61     macros:</para>
63     <programlisting>#define SD_EMERG   "&lt;0&gt;"  /* system is unusable */
64 #define SD_ALERT   "&lt;1&gt;"  /* action must be taken immediately */
65 #define SD_CRIT    "&lt;2&gt;"  /* critical conditions */
66 #define SD_ERR     "&lt;3&gt;"  /* error conditions */
67 #define SD_WARNING "&lt;4&gt;"  /* warning conditions */
68 #define SD_NOTICE  "&lt;5&gt;"  /* normal but significant condition */
69 #define SD_INFO    "&lt;6&gt;"  /* informational */
70 #define SD_DEBUG   "&lt;7&gt;"  /* debug-level messages */</programlisting>
72     <para>These prefixes are intended to be used in conjunction with stderr-based logging (or stdout-based
73     logging) as implemented by systemd. If a systemd service definition file is configured with
74     <varname>StandardError=journal</varname> or <varname>StandardError=kmsg</varname> (and similar with
75     <varname>StandardOutput=</varname>), these prefixes can be used to encode a log level in lines
76     printed. This is similar to the kernel <function>printk()</function>-style logging. See
77     <citerefentry><refentrytitle>klogctl</refentrytitle><manvolnum>2</manvolnum></citerefentry> for more
78     information.</para>
80     <para>The log levels are identical to
81     <citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>'s
82     log level system. To use these prefixes simply prefix every line
83     with one of these strings. A line that is not prefixed will be
84     logged at the default log level SD_INFO.</para>
86     <example>
87       <title>Hello World</title>
89       <para>A daemon may log with the log level NOTICE by issuing this
90       call:</para>
92       <programlisting>fprintf(stderr, SD_NOTICE "Hello World!\n");</programlisting>
93     </example>
94   </refsect1>
96   <xi:include href="libsystemd-pkgconfig.xml" />
98   <refsect1>
99     <title>See Also</title>
100     <para>
101       <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
102       <citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
103       <citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
104       <citerefentry><refentrytitle>sd_booted</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
105       <citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
106       <citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
107       <citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
108       <citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
109       <citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
110       <citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
111       <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
112     </para>
113   </refsect1>
115 </refentry>