User:Johannbg/QA/Systemd/Sd-daemon

Name
sd-daemon — Reference implementation of APIs for new-style daemons

Synopsis

 * 1) include "sd-daemon.h"

Description
sd-daemon.c and sd-daemon.h provide a reference implementation of various APIs for new-style daemons, as implemented by the systemd(1) init system.

See sd_listen_fds(3), sd_notify(3), sd_booted(3), sd_is_fifo(3) for more information about the functions implemented. In addition to these functions a couple of logging prefixes are defined as macros: 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 StandardError=syslog or StandardError=kmsg these prefixes can be used to encode a log level in lines printed. This is similar to the kernel printk-style logging. See klogctl(2) for more information.
 * 1) define SD_EMERG  "<0>"  /* system is unusable */
 * 2) define SD_ALERT  "<1>"  /* action must be taken immediately */
 * 3) define SD_CRIT   "<2>"  /* critical conditions */
 * 4) define SD_ERR    "<3>"  /* error conditions */
 * 5) define SD_WARNING "<4>" /* warning conditions */
 * 6) define SD_NOTICE "<5>"  /* normal but significant condition */
 * 7) define SD_INFO   "<6>"  /* informational */
 * 8) define SD_DEBUG  "<7>"  /* debug-level messages */

The log levels are identical to syslog(3)'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.

Example 1. Hello World

A daemon may log with the log level NOTICE by issuing this call: fprintf(stderr, SD_NOTICE "Hello World!\n");