2010-06-23 02:31:54 +04:00
<?xml version='1.0'?> <!-- * - nxml - * -->
2019-03-14 16:40:58 +03:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2015-06-18 20:47:44 +03:00
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
2020-11-09 07:23:58 +03:00
<!-- SPDX - License - Identifier: LGPL - 2.1 - or - later -->
2010-06-23 02:31:54 +04:00
2014-02-21 07:39:26 +04:00
<refentry id= "sd-daemon"
2015-02-04 05:14:13 +03:00
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 < systemd/sd-daemon.h> </funcsynopsisinfo>
</funcsynopsis>
<cmdsynopsis >
<command > pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
2023-05-15 16:17:13 +03:00
<para > <filename > sd-daemon.h</filename> is part of
<citerefentry > <refentrytitle > libsystemd</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> and
provides APIs for new-style daemons, as implemented by the
<citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> service
manager.</para>
2015-02-04 05:14:13 +03:00
<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 "< 0> " /* system is unusable */
2010-06-23 02:31:54 +04:00
#define SD_ALERT "< 1> " /* action must be taken immediately */
#define SD_CRIT "< 2> " /* critical conditions */
#define SD_ERR "< 3> " /* error conditions */
#define SD_WARNING "< 4> " /* warning conditions */
#define SD_NOTICE "< 5> " /* normal but significant condition */
#define SD_INFO "< 6> " /* informational */
#define SD_DEBUG "< 7> " /* debug-level messages */</programlisting>
2020-03-31 16:59:29 +03:00
<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
2020-05-14 13:19:46 +03:00
<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
2020-03-31 16:59:29 +03:00
<citerefentry > <refentrytitle > klogctl</refentrytitle> <manvolnum > 2</manvolnum> </citerefentry> for more
information.</para>
2015-02-04 05:14:13 +03:00
<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>
2010-06-23 02:31:54 +04:00
</refentry>