sd_booted.xml revision f9378423b9758861850748aeb49ae0d3300e56e6
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering<?xml version='1.0'?> <!--*-nxml-*-->
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering
5430f7f2bc7330f3088b894166bf3524a067e3d8Lennart Poettering<!--
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering This file is part of systemd.
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering Copyright 2010 Lennart Poettering
70449379def39da2a3efbd7c7da27a4745702b08Lennart Poettering
49dbfa7b2b0bf3906704dac1eaeb4eba91056a19Lennart Poettering systemd is free software; you can redistribute it and/or modify it
aa6c53bf05f27bb094735e7bc2bbfc73ac7bc2baLennart Poettering under the terms of the GNU General Public License as published by
a4a878d04045b46fa9783664e3643a890b356790Lennart Poettering the Free Software Foundation; either version 2 of the License, or
a4a878d04045b46fa9783664e3643a890b356790Lennart Poettering (at your option) any later version.
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="sd_booted">
<refentryinfo>
<title>sd_booted</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_booted</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_booted</refname>
<refpurpose>Test whether the system is running the systemd init system.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include "sd-daemon.h"</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_booted</function></funcdef>
<paramdef>void</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_booted()</function> checks whether
the system was booted up using the systemd init system.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<para>On failure, this call returns a negative
errno-style error code. If the system was booted up
with systemd as init system this call returns a
postive return value, zero otherwise.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<para>This function is provided by the reference
implementation of APIs for new-style daemons and
distributed with the systemd package. The algorithm it
implements is simple, and can easily be reimplemented
in daemons if it is important to support this
interface without using the reference
implementation.</para>
<para>Internally, this function checks whether the
<filename>/cgroup/systemd</filename> virtual file
system is mounted, by comparing the st_dev value of
the <function>stat()</function> data of
<filename>/cgroup</filename> and
<filename>/cgroup/systemd</filename>.</para>
<para>For details about the algorithm check the
liberally licensed reference implementation sources:
<ulink url="http://cgit.freedesktop.org/systemd/tree/src/sd-daemon.c"/>
resp. <ulink
url="http://cgit.freedesktop.org/systemd/tree/src/sd-daemon.h"/></para>
<para><function>sd_booted()</function> is implemented
in the reference implementation's drop-in
<filename>sd-daemon.c</filename> and
<filename>sd-daemon.h</filename> files. It is
recommended that applications consuming these APIs
copy the implementation into their source tree. For
more details about the reference implementation see
<citerefentry><refentrytitle>sd_daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry></para>
<para>If -DDISABLE_SYSTEMD is set during compilation
this function will always return 0 and otherwise
become a NOP.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>sd_daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>