294N/A<?
xml version='1.0'?>
<!--*-nxml-*--> 294N/A<!
DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 294N/A This file is part of systemd. 294N/A Copyright 2010 Lennart Poettering 294N/A systemd is free software; you can redistribute it and/or modify it 294N/A under the terms of the GNU Lesser General Public License as published by 294N/A the Free Software Foundation; either version 2.1 of the License, or 294N/A (at your option) any later version. 294N/A systemd is distributed in the hope that it will be useful, but 294N/A WITHOUT ANY WARRANTY; without even the implied warranty of 294N/A MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 294N/A Lesser General Public License for more details. 294N/A You should have received a copy of the GNU Lesser General Public License 294N/A<
refentry id="sd-daemon" 294N/A <
title>sd-daemon</
title>
294N/A <
productname>systemd</
productname>
294N/A <
contrib>Developer</
contrib>
294N/A <
firstname>Lennart</
firstname>
294N/A <
surname>Poettering</
surname>
294N/A <
email>lennart@poettering.net</
email>
294N/A <
refentrytitle>sd-daemon</
refentrytitle>
294N/A <
manvolnum>3</
manvolnum>
294N/A <
refname>sd-daemon</
refname>
294N/A <
refname>SD_EMERG</
refname>
294N/A <
refname>SD_ALERT</
refname>
294N/A <
refname>SD_CRIT</
refname>
294N/A <
refname>SD_ERR</
refname>
294N/A <
refname>SD_WARNING</
refname>
294N/A <
refname>SD_NOTICE</
refname>
294N/A <
refname>SD_INFO</
refname>
294N/A <
refname>SD_DEBUG</
refname>
294N/A new-style daemons</
refpurpose>
294N/A <
command>pkg-config --cflags --libs libsystemd</
command>
<
title>Description</
title>
<
para><
filename>
sd-daemon.h</
filename> provide APIs for new-style
daemons, as implemented by the
<
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>
for more information about the functions implemented. In addition
to these functions, a couple of logging prefixes are defined as
<
programlisting>#define SD_EMERG "<0>" /* system is unusable */
#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>
<
para>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
<
varname>StandardError=journal</
varname>,
<
varname>StandardError=syslog</
varname> or
<
varname>StandardError=kmsg</
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>
<
title>Hello World</
title>
<
para>A daemon may log with the log level NOTICE by issuing this
<
programlisting>fprintf(stderr, SD_NOTICE "Hello World!\n");</
programlisting>
<
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>