1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-08-25 13:50:12 +03:00

Reindent man pages to 2ch

This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2015-02-03 21:14:13 -05:00
parent 35888b67f7
commit 798d3a524e
153 changed files with 28180 additions and 32498 deletions

View File

@ -1,4 +1,5 @@
- 8ch indent, no tabs
- 8ch indent, no tabs, except for files in man/ which are 2ch indent,
and still no tabs
- Don't break code lines too eagerly. We do *not* force line breaks at
80ch, all of today's screens should be much larger than that. But

View File

@ -20,83 +20,82 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="binfmt.d" conditional='ENABLE_BINFMT'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>binfmt.d</title>
<productname>systemd</productname>
<refentryinfo>
<title>binfmt.d</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>binfmt.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>binfmt.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>binfmt.d</refname>
<refpurpose>Configure additional binary formats for
executables at boot</refpurpose>
</refnamediv>
<refnamediv>
<refname>binfmt.d</refname>
<refpurpose>Configure additional binary formats for
executables at boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/binfmt.d/*.conf</filename></para>
<para><filename>/run/binfmt.d/*.conf</filename></para>
<para><filename>/usr/lib/binfmt.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/binfmt.d/*.conf</filename></para>
<para><filename>/run/binfmt.d/*.conf</filename></para>
<para><filename>/usr/lib/binfmt.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>At boot,
<citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads configuration files from the above directories
to register in the kernel additional binary
formats for executables.</para>
</refsect1>
<para>At boot,
<citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads configuration files from the above directories to register
in the kernel additional binary formats for executables.</para>
</refsect1>
<refsect1>
<title>Configuration Format</title>
<refsect1>
<title>Configuration Format</title>
<para>Each file contains a list of binfmt_misc kernel
binary format rules. Consult <ulink
url="https://www.kernel.org/doc/Documentation/binfmt_misc.txt">binfmt_misc.txt</ulink>
for more information on registration of additional
binary formats and how to write rules.</para>
<para>Each file contains a list of binfmt_misc kernel binary
format rules. Consult <ulink
url="https://www.kernel.org/doc/Documentation/binfmt_misc.txt">binfmt_misc.txt</ulink>
for more information on registration of additional binary formats
and how to write rules.</para>
<para>Empty lines and lines beginning with ; and # are
ignored. Note that this means you may not use ; and #
as delimiter in binary format rules.</para>
</refsect1>
<para>Empty lines and lines beginning with ; and # are ignored.
Note that this means you may not use ; and # as delimiter in
binary format rules.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<refsect1>
<title>Example</title>
<example>
<title>/etc/binfmt.d/wine.conf example:</title>
<refsect1>
<title>Example</title>
<example>
<title>/etc/binfmt.d/wine.conf example:</title>
<programlisting># Start WINE on Windows executables
<programlisting># Start WINE on Windows executables
:DOSWin:M::MZ::/usr/bin/wine:</programlisting>
</example>
</refsect1>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>wine</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-binfmt.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>wine</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -26,148 +26,149 @@
-->
<refentry id="bootchart.conf" conditional='ENABLE_BOOTCHART'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>bootchart.conf</title>
<productname>systemd</productname>
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>bootchart.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Auke</firstname>
<surname>Kok</surname>
<email>auke-jan.h.kok@intel.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Auke</firstname>
<surname>Kok</surname>
<email>auke-jan.h.kok@intel.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>bootchart.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>bootchart.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>bootchart.conf</refname>
<refname>bootchart.conf.d</refname>
<refpurpose>Boot performance analysis graphing tool configuration files</refpurpose>
</refnamediv>
<refnamediv>
<refname>bootchart.conf</refname>
<refname>bootchart.conf.d</refname>
<refpurpose>Boot performance analysis graphing tool configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/bootchart.conf</filename></para>
<para><filename>/etc/systemd/bootchart.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/bootchart.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/bootchart.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/systemd/bootchart.conf</filename></para>
<para><filename>/etc/systemd/bootchart.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/bootchart.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/bootchart.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>When starting, systemd-bootchart will read the
configuration file
<filename>/etc/systemd/bootchart.conf</filename>, followed by
the files in the <filename>bootchart.conf.d</filename>
directories. These configuration files determine logging
parameters and graph output.</para>
</refsect1>
<para>When starting, systemd-bootchart will read the configuration
file <filename>/etc/systemd/bootchart.conf</filename>, followed by
the files in the <filename>bootchart.conf.d</filename>
directories. These configuration files determine logging
parameters and graph output.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<variablelist class='bootchart-directives'>
<variablelist class='bootchart-directives'>
<varlistentry>
<term><varname>Samples=500</varname></term>
<listitem><para>Configure the amount of samples to
record in total before bootchart exits. Each sample will
record at intervals defined by Frequency=.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Samples=500</varname></term>
<listitem><para>Configure the amount of samples to record in
total before bootchart exits. Each sample will record at
intervals defined by Frequency=.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Frequency=25</varname></term>
<listitem><para>Configure the sample log frequency.
This can be a fractional number, but must be larger than
0.0. Most systems can cope with values under 25-50 without
impacting boot time severely.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Frequency=25</varname></term>
<listitem><para>Configure the sample log frequency. This can
be a fractional number, but must be larger than 0.0. Most
systems can cope with values under 25-50 without impacting
boot time severely.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Relative=no</varname></term>
<listitem><para>Configures whether the left axis of the
output graph equals time=0.0 (<constant>CLOCK_MONOTONIC</constant> start). This
is useful for using bootchart at post-boot time to profile
an already booted system, otherwise the graph would become
extremely large. If set to yes, the horizontal axis starts
at the first recorded sample instead of time=0.0.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Relative=no</varname></term>
<listitem><para>Configures whether the left axis of the output
graph equals time=0.0 (<constant>CLOCK_MONOTONIC</constant>
start). This is useful for using bootchart at post-boot time
to profile an already booted system, otherwise the graph would
become extremely large. If set to yes, the horizontal axis
starts at the first recorded sample instead of time=0.0.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Filter=no</varname></term>
<listitem><para>Configures whether the resulting graph
should omit tasks that did not contribute significantly
to the boot. Processes that are too short-lived (only
seen in one sample) or that do not consume any significant
CPU time (less than 0.001sec) will not be displayed in
the output graph.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Filter=no</varname></term>
<listitem><para>Configures whether the resulting graph should
omit tasks that did not contribute significantly to the boot.
Processes that are too short-lived (only seen in one sample)
or that do not consume any significant CPU time (less than
0.001sec) will not be displayed in the output
graph.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Output=[path]</varname></term>
<listitem><para>Configures the output directory for writing
the graphs. By default, bootchart writes the graphs to
<filename>/run/log</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Output=[path]</varname></term>
<listitem><para>Configures the output directory for writing
the graphs. By default, bootchart writes the graphs to
<filename>/run/log</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Init=[path]</varname></term>
<listitem><para>Configures bootchart to run a non-standard
binary instead of <filename>/usr/lib/systemd/systemd</filename>. This
option is only relevant if bootchart was invoked from the
kernel command line with
init=/usr/lib/systemd/systemd-bootchart.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Init=[path]</varname></term>
<listitem><para>Configures bootchart to run a non-standard
binary instead of
<filename>/usr/lib/systemd/systemd</filename>. This option is
only relevant if bootchart was invoked from the kernel command
line with
init=/usr/lib/systemd/systemd-bootchart.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PlotMemoryUsage=no</varname></term>
<listitem><para>If set to yes, enables logging and graphing
of processes' PSS memory consumption.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PlotMemoryUsage=no</varname></term>
<listitem><para>If set to yes, enables logging and graphing of
processes' PSS memory consumption.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PlotEntropyGraph=no</varname></term>
<listitem><para>If set to yes, enables logging and graphing
of the kernel random entropy pool size.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PlotEntropyGraph=no</varname></term>
<listitem><para>If set to yes, enables logging and graphing of
the kernel random entropy pool size.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ScaleX=100</varname></term>
<listitem><para>Horizontal scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ScaleX=100</varname></term>
<listitem><para>Horizontal scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ScaleY=20</varname></term>
<listitem><para>Vertical scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ScaleY=20</varname></term>
<listitem><para>Vertical scaling factor for all variable graph
components.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ControlGroup=no</varname></term>
<listitem><para>Display process control group.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ControlGroup=no</varname></term>
<listitem><para>Display process control group.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd-bootchart</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -20,95 +20,93 @@
-->
<refentry id="bootctl" conditional='ENABLE_EFI'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>bootctl</title>
<productname>systemd</productname>
<refentryinfo>
<title>bootctl</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Kay</firstname>
<surname>Sievers</surname>
<email>kay@vrfy.org</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Kay</firstname>
<surname>Sievers</surname>
<email>kay@vrfy.org</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>bootctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>bootctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>bootctl</refname>
<refpurpose>Control the firmware and boot manager settings</refpurpose>
</refnamediv>
<refnamediv>
<refname>bootctl</refname>
<refpurpose>Control the firmware and boot manager settings</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>bootctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>bootctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>bootctl</command> may be used to
query or (in the future) change the firmware and boot
manager settings.</para>
<para><command>bootctl</command> may be used to query or (in the
future) change the firmware and boot manager settings.</para>
<para>Firmware information is available only on EFI
systems.</para>
<para>Firmware information is available only on EFI systems.
</para>
<para>Currently, only the <citerefentry project='gummiboot'><refentrytitle>gummiboot</refentrytitle><manvolnum>8</manvolnum></citerefentry> boot
manager implements the required boot loader interface
to provide complete boot manager information.</para>
</refsect1>
<para>Currently, only the
<citerefentry project='gummiboot'><refentrytitle>gummiboot</refentrytitle><manvolnum>8</manvolnum></citerefentry>
boot manager implements the required boot loader interface to
provide complete boot manager information.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<para>The following commands are understood:</para>
<para>The following commands are understood:</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem><para>Show firmware and boot
manager information about the system,
including secure boot mode status and
selected firmware entry (where
available).</para></listitem>
</varlistentry>
</variablelist>
<listitem><para>Show firmware and boot manager information
about the system, including secure boot mode status and
selected firmware entry (where available).</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<ulink url="http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Boot loader interface</ulink>,
<ulink url="http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot loader specification</ulink>,
<ulink url="http://www.freedesktop.org/wiki/Software/gummiboot/">gummiboot</ulink>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<ulink url="http://www.freedesktop.org/wiki/Software/systemd/BootLoaderInterface">Boot loader interface</ulink>,
<ulink url="http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec">Boot loader specification</ulink>,
<ulink url="http://www.freedesktop.org/wiki/Software/gummiboot/">gummiboot</ulink>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,301 +23,279 @@
<refentry id="bootup">
<refentryinfo>
<title>bootup</title>
<productname>systemd</productname>
<refentryinfo>
<title>bootup</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>bootup</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>bootup</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
<refname>bootup</refname>
<refpurpose>System bootup process</refpurpose>
</refnamediv>
<refnamediv>
<refname>bootup</refname>
<refpurpose>System bootup process</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>A number of different components are involved in
the system boot. Immediately after power-up, the
system BIOS will do minimal hardware initialization,
and hand control over to a boot loader stored on a
persistent storage device. This boot loader will then
invoke an OS kernel from disk (or the network). In the
Linux case, this kernel (optionally) extracts and
executes an initial RAM disk image (initrd), such as
generated by
<citerefentry project='die-net'><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
which looks for the root file system (possibly using
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
for this). After the root file system is found and
mounted, the initrd hands over control to the host's
system manager (such as
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
stored on the OS image, which is then responsible for
probing all remaining hardware, mounting all necessary
file systems and spawning all configured
services.</para>
<para>A number of different components are involved in the system
boot. Immediately after power-up, the system BIOS will do minimal
hardware initialization, and hand control over to a boot loader
stored on a persistent storage device. This boot loader will then
invoke an OS kernel from disk (or the network). In the Linux case,
this kernel (optionally) extracts and executes an initial RAM disk
image (initrd), such as generated by
<citerefentry project='die-net'><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
which looks for the root file system (possibly using
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
for this). After the root file system is found and mounted, the
initrd hands over control to the host's system manager (such as
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
stored on the OS image, which is then responsible for probing all
remaining hardware, mounting all necessary file systems and
spawning all configured services.</para>
<para>On shutdown, the system manager stops all
services, unmounts all file systems (detaching the
storage technologies backing them), and then
(optionally) jumps back into the initrd code which
unmounts/detaches the root file system and the storage
it resides on. As a last step, the system is powered down.</para>
<para>On shutdown, the system manager stops all services, unmounts
all file systems (detaching the storage technologies backing
them), and then (optionally) jumps back into the initrd code which
unmounts/detaches the root file system and the storage it resides
on. As a last step, the system is powered down.</para>
<para>Additional information about the system boot
process may be found in
<citerefentry project='man-pages'><refentrytitle>boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
</refsect1>
<para>Additional information about the system boot process may be
found in
<citerefentry project='man-pages'><refentrytitle>boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>System Manager Bootup</title>
<refsect1>
<title>System Manager Bootup</title>
<para>At boot, the system manager on the OS image is
responsible for initializing the required file
systems, services and drivers that are necessary for
operation of the system. On
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
systems, this process is split up in various discrete
steps which are exposed as target units. (See
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for detailed information about target units.) The
boot-up process is highly parallelized so that the
order in which specific target units are reached is not
deterministic, but still adheres to a limited amount
of ordering structure.</para>
<para>At boot, the system manager on the OS image is responsible
for initializing the required file systems, services and drivers
that are necessary for operation of the system. On
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
systems, this process is split up in various discrete steps which
are exposed as target units. (See
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for detailed information about target units.) The boot-up process
is highly parallelized so that the order in which specific target
units are reached is not deterministic, but still adheres to a
limited amount of ordering structure.</para>
<para>When systemd starts up the system, it will
activate all units that are dependencies of
<filename>default.target</filename> (as well as
recursively all dependencies of these
dependencies). Usually,
<filename>default.target</filename> is simply an alias
of <filename>graphical.target</filename> or
<filename>multi-user.target</filename>, depending on
whether the system is configured for a graphical UI or
only for a text console. To enforce minimal ordering
between the units pulled in, a number of well-known
target units are available, as listed on
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>When systemd starts up the system, it will activate all
units that are dependencies of <filename>default.target</filename>
(as well as recursively all dependencies of these dependencies).
Usually, <filename>default.target</filename> is simply an alias of
<filename>graphical.target</filename> or
<filename>multi-user.target</filename>, depending on whether the
system is configured for a graphical UI or only for a text
console. To enforce minimal ordering between the units pulled in,
a number of well-known target units are available, as listed on
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>The following chart is a structural overview of
these well-known units and their position in the
boot-up logic. The arrows describe which units are
pulled in and ordered before which other units. Units
near the top are started before units nearer to the
bottom of the chart.</para>
<para>The following chart is a structural overview of these
well-known units and their position in the boot-up logic. The
arrows describe which units are pulled in and ordered before which
other units. Units near the top are started before units nearer to
the bottom of the chart.</para>
<programlisting>local-fs-pre.target
|
v
|
v
(various mounts and (various swap (various cryptsetup
fsck services...) devices...) devices...) (various low-level (various low-level
| | | services: udevd, API VFS mounts:
v v v tmpfiles, random mqueue, configfs,
fsck services...) devices...) devices...) (various low-level (various low-level
| | | services: udevd, API VFS mounts:
v v v tmpfiles, random mqueue, configfs,
local-fs.target swap.target cryptsetup.target seed, sysctl, ...) debugfs, ...)
| | | | |
\__________________|_________________ | ___________________|____________________/
\|/
v
sysinit.target
|
____________________________________/|\________________________________________
/ | | | \
| | | | |
v v | v v
(various (various | (various rescue.service
timers...) paths...) | sockets...) |
| | | | v
v v | v <emphasis>rescue.target</emphasis>
timers.target paths.target | sockets.target
| | | |
v |_________________ | ___________________/
\|/
v
basic.target
|
____________________________________/| emergency.service
/ | | |
| | | v
v v v <emphasis>emergency.target</emphasis>
display- (various system (various system
manager.service services services)
| required for |
| graphical UIs) v
| | <emphasis>multi-user.target</emphasis>
| | |
\_________________ | _________________/
\|/
v
<emphasis>graphical.target</emphasis></programlisting>
| | | | |
\__________________|_________________ | ___________________|____________________/
\|/
v
sysinit.target
|
____________________________________/|\________________________________________
/ | | | \
| | | | |
v v | v v
(various (various | (various rescue.service
timers...) paths...) | sockets...) |
| | | | v
v v | v <emphasis>rescue.target</emphasis>
timers.target paths.target | sockets.target
| | | |
v |_________________ | ___________________/
\|/
v
basic.target
|
____________________________________/| emergency.service
/ | | |
| | | v
v v v <emphasis>emergency.target</emphasis>
display- (various system (various system
manager.service services services)
| required for |
| graphical UIs) v
| | <emphasis>multi-user.target</emphasis>
| | |
\_________________ | _________________/
\|/
v
<emphasis>graphical.target</emphasis></programlisting>
<para>Target units that are commonly used as boot
targets are <emphasis>emphasized</emphasis>. These
units are good choices as goal targets, for
example by passing them to the
<varname>systemd.unit=</varname> kernel command line
option (see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
or by symlinking <filename>default.target</filename>
to them.</para>
<para>Target units that are commonly used as boot targets are
<emphasis>emphasized</emphasis>. These units are good choices as
goal targets, for example by passing them to the
<varname>systemd.unit=</varname> kernel command line option (see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>)
or by symlinking <filename>default.target</filename> to
them.</para>
<para><filename>timers.target</filename> is pulled-in
by <filename>basic.target</filename> asynchronously.
This allows timers units to depend on services which
become only available later in boot.</para>
</refsect1>
<para><filename>timers.target</filename> is pulled-in by
<filename>basic.target</filename> asynchronously. This allows
timers units to depend on services which become only available
later in boot.</para>
</refsect1>
<refsect1>
<title>Bootup in the Initial RAM Disk (initrd)</title>
<para>The initial RAM disk implementation (initrd) can
be set up using systemd as well. In this case, boot up
inside the initrd follows the following
structure.</para>
<refsect1>
<title>Bootup in the Initial RAM Disk (initrd)</title>
<para>The initial RAM disk implementation (initrd) can be set up
using systemd as well. In this case, boot up inside the initrd
follows the following structure.</para>
<para>The default target in the initrd is
<filename>initrd.target</filename>. The bootup process
begins identical to the system manager bootup (see
above) until it reaches
<filename>basic.target</filename>. From there, systemd
approaches the special target
<filename>initrd.target</filename>. If the root device
can be mounted at <filename>/sysroot</filename>, the
<filename>sysroot.mount</filename> unit becomes active
and <filename>initrd-root-fs.target</filename> is
reached. The service
<filename>initrd-parse-etc.service</filename> scans
<filename>/sysroot/etc/fstab</filename> for a possible
<filename>/usr</filename> mount point and additional
entries marked with the
<emphasis>x-initrd.mount</emphasis> option. All
entries found are mounted below
<filename>/sysroot</filename>, and
<filename>initrd-fs.target</filename> is reached. The
service <filename>initrd-cleanup.service</filename>
isolates to the
<filename>initrd-switch-root.target</filename>, where
cleanup services can run. As the very last step, the
<filename>initrd-switch-root.service</filename> is
activated, which will cause the system to switch its
root to <filename>/sysroot</filename>.
</para>
<para>The default target in the initrd is
<filename>initrd.target</filename>. The bootup process begins
identical to the system manager bootup (see above) until it
reaches <filename>basic.target</filename>. From there, systemd
approaches the special target <filename>initrd.target</filename>.
If the root device can be mounted at
<filename>/sysroot</filename>, the
<filename>sysroot.mount</filename> unit becomes active and
<filename>initrd-root-fs.target</filename> is reached. The service
<filename>initrd-parse-etc.service</filename> scans
<filename>/sysroot/etc/fstab</filename> for a possible
<filename>/usr</filename> mount point and additional entries
marked with the <emphasis>x-initrd.mount</emphasis> option. All
entries found are mounted below <filename>/sysroot</filename>, and
<filename>initrd-fs.target</filename> is reached. The service
<filename>initrd-cleanup.service</filename> isolates to the
<filename>initrd-switch-root.target</filename>, where cleanup
services can run. As the very last step, the
<filename>initrd-switch-root.service</filename> is activated,
which will cause the system to switch its root to
<filename>/sysroot</filename>.
</para>
<programlisting> : (beginning identical to above)
:
v
basic.target
| emergency.service
______________________/| |
/ | v
| sysroot.mount <emphasis>emergency.target</emphasis>
| |
| v
| initrd-root-fs.target
| |
| v
v initrd-parse-etc.service
(custom initrd |
services...) v
| (sysroot-usr.mount and
| various mounts marked
| with fstab option
| x-initrd.mount...)
| |
| v
| initrd-fs.target
\______________________ |
\|
v
initrd.target
|
v
initrd-cleanup.service
isolates to
initrd-switch-root.target
|
v
______________________/|
/ v
| initrd-udevadm-cleanup-db.service
v |
(custom initrd |
services...) |
\______________________ |
\|
v
initrd-switch-root.target
|
v
initrd-switch-root.service
|
v
Transition to Host OS</programlisting>
</refsect1>
<programlisting> : (beginning identical to above)
:
v
basic.target
| emergency.service
______________________/| |
/ | v
| sysroot.mount <emphasis>emergency.target</emphasis>
| |
| v
| initrd-root-fs.target
| |
| v
v initrd-parse-etc.service
(custom initrd |
services...) v
| (sysroot-usr.mount and
| various mounts marked
| with fstab option
| x-initrd.mount...)
| |
| v
| initrd-fs.target
\______________________ |
\|
v
initrd.target
|
v
initrd-cleanup.service
isolates to
initrd-switch-root.target
|
v
______________________/|
/ v
| initrd-udevadm-cleanup-db.service
v |
(custom initrd |
services...) |
\______________________ |
\|
v
initrd-switch-root.target
|
v
initrd-switch-root.service
|
v
Transition to Host OS</programlisting>
</refsect1>
<refsect1>
<title>System Manager Shutdown</title>
<refsect1>
<title>System Manager Shutdown</title>
<para>System shutdown with systemd also consists of
various target units with some minimal ordering
structure applied:</para>
<para>System shutdown with systemd also consists of various target
units with some minimal ordering structure applied:</para>
<programlisting> (conflicts with (conflicts with
all system all file system
services) mounts, swaps,
| cryptsetup
| devices, ...)
| |
v v
shutdown.target umount.target
| |
\_______ ______/
\ /
v
(various low-level
services)
|
v
final.target
|
_____________________________________/ \_________________________________
/ | | \
| | | |
v v v v
<programlisting> (conflicts with (conflicts with
all system all file system
services) mounts, swaps,
| cryptsetup
| devices, ...)
| |
v v
shutdown.target umount.target
| |
\_______ ______/
\ /
v
(various low-level
services)
|
v
final.target
|
_____________________________________/ \_________________________________
/ | | \
| | | |
v v v v
systemd-reboot.service systemd-poweroff.service systemd-halt.service systemd-kexec.service
| | | |
v v v v
<emphasis>reboot.target</emphasis> <emphasis>poweroff.target</emphasis> <emphasis>halt.target</emphasis> <emphasis>kexec.target</emphasis></programlisting>
| | | |
v v v v
<emphasis>reboot.target</emphasis> <emphasis>poweroff.target</emphasis> <emphasis>halt.target</emphasis> <emphasis>kexec.target</emphasis></programlisting>
<para>Commonly used system shutdown targets are <emphasis>emphasized</emphasis>.</para>
</refsect1>
<para>Commonly used system shutdown targets are
<emphasis>emphasized</emphasis>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>boot</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>dracut</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,227 +22,216 @@
-->
<refentry id="coredumpctl" conditional='ENABLE_COREDUMP'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>coredumpctl</title>
<productname>systemd</productname>
<refentryinfo>
<title>coredumpctl</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Zbigniew</firstname>
<surname>Jędrzejewski-Szmek</surname>
<email>zbyszek@in.waw.pl</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Zbigniew</firstname>
<surname>Jędrzejewski-Szmek</surname>
<email>zbyszek@in.waw.pl</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>coredumpctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>coredumpctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>coredumpctl</refname>
<refpurpose>Retrieve coredumps from the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>coredumpctl</refname>
<refpurpose>Retrieve coredumps from the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>coredumpctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
<arg choice="opt" rep="repeat">PID|COMM|EXE|MATCH</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>coredumpctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
<arg choice="opt" rep="repeat">PID|COMM|EXE|MATCH</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>coredumpctl</command> may be used to
retrieve coredumps from
<citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<para><command>coredumpctl</command> may be used to
retrieve coredumps from
<citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-legend</option></term>
<variablelist>
<varlistentry>
<term><option>--no-legend</option></term>
<listitem><para>Do not print column headers.
</para></listitem>
</varlistentry>
<listitem><para>Do not print column headers.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-1</option></term>
<varlistentry>
<term><option>-1</option></term>
<listitem><para>Show information of a
single coredump only, instead of
listing all known coredumps.
</para></listitem>
</varlistentry>
<listitem><para>Show information of a single coredump only,
instead of listing all known coredumps. </para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F</option></term>
<term><option>--field=</option></term>
<varlistentry>
<term><option>-F</option></term>
<term><option>--field=</option></term>
<listitem><para>Print all possible
data values the specified field
takes in matching coredump entries of the
journal.</para></listitem>
</varlistentry>
<listitem><para>Print all possible data values the specified
field takes in matching coredump entries of the
journal.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output=FILE</option></term>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output=FILE</option></term>
<listitem><para>Write the core to
<option>FILE</option>.</para></listitem>
</varlistentry>
<listitem><para>Write the core to <option>FILE</option>.
</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
</variablelist>
<para>The following commands are understood:</para>
<para>The following commands are understood:</para>
<variablelist>
<varlistentry>
<term><command>list</command></term>
<variablelist>
<varlistentry>
<term><command>list</command></term>
<listitem><para>List coredumps
captured in the journal matching
specified characteristics. If no
command is specified, this is the
implied default.</para></listitem>
</varlistentry>
<listitem><para>List coredumps captured in the journal
matching specified characteristics. If no command is
specified, this is the implied default.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>info</command></term>
<varlistentry>
<term><command>info</command></term>
<listitem><para>Show detailed
information about coredumps captured
in the journal.</para></listitem>
</varlistentry>
<listitem><para>Show detailed information about coredumps
captured in the journal.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>dump</command></term>
<varlistentry>
<term><command>dump</command></term>
<listitem><para>Extract the last coredump
matching specified characteristics.
The coredump will be written on standard output,
unless an output file is specified with
<option>-o/--output</option>.
</para></listitem>
</varlistentry>
<listitem><para>Extract the last coredump matching specified
characteristics. The coredump will be written on standard
output, unless an output file is specified with
<option>-o/--output</option>. </para></listitem>
</varlistentry>
<varlistentry>
<term><command>gdb</command></term>
<varlistentry>
<term><command>gdb</command></term>
<listitem><para>Invoke the GNU
debugger on the last coredump matching
specified characteristics.
</para></listitem>
</varlistentry>
<listitem><para>Invoke the GNU debugger on the last coredump
matching specified characteristics. </para></listitem>
</varlistentry>
</variablelist>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Matching</title>
<refsect1>
<title>Matching</title>
<para>A match can be:</para>
<para>A match can be:</para>
<variablelist>
<varlistentry>
<term><replaceable>PID</replaceable></term>
<variablelist>
<varlistentry>
<term><replaceable>PID</replaceable></term>
<listitem><para>Process ID of the
process that dumped
core. An integer.</para></listitem>
</varlistentry>
<listitem><para>Process ID of the
process that dumped
core. An integer.</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>COMM</replaceable></term>
<varlistentry>
<term><replaceable>COMM</replaceable></term>
<listitem><para>Name of the executable
(matches <option>COREDUMP_COMM=</option>).
Must not contain slashes.
</para></listitem>
</varlistentry>
<listitem><para>Name of the executable (matches
<option>COREDUMP_COMM=</option>). Must not contain slashes.
</para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>EXE</replaceable></term>
<varlistentry>
<term><replaceable>EXE</replaceable></term>
<listitem><para>Path to the executable
(matches <option>COREDUMP_EXE=</option>).
Must contain at least one slash.
</para></listitem>
</varlistentry>
<listitem><para>Path to the executable (matches
<option>COREDUMP_EXE=</option>). Must contain at least one
slash. </para></listitem>
</varlistentry>
<varlistentry>
<term><replaceable>MATCH</replaceable></term>
<varlistentry>
<term><replaceable>MATCH</replaceable></term>
<listitem><para>General journalctl predicates
(see <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
Must contain an equal sign.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>General journalctl predicates (see
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>).
Must contain an equal sign. </para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned; otherwise, a non-zero failure
code is returned. Not finding any matching coredumps is treated
as failure.
</para>
</refsect1>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned; otherwise, a non-zero failure
code is returned. Not finding any matching coredumps is treated as
failure.
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<example>
<title>List all the coredumps of a program named foo</title>
<example>
<title>List all the coredumps of a program named foo</title>
<programlisting># coredumpctl list foo</programlisting>
</example>
<programlisting># coredumpctl list foo</programlisting>
</example>
<example>
<title>Invoke gdb on the last coredump</title>
<example>
<title>Invoke gdb on the last coredump</title>
<programlisting># coredumpctl gdb</programlisting>
</example>
<programlisting># coredumpctl gdb</programlisting>
</example>
<example>
<title>Show information about a process that dumped core, matching by its PID 6654</title>
<example>
<title>Show information about a process that dumped core,
matching by its PID 6654</title>
<programlisting># coredumpctl info 6654</programlisting>
</example>
<programlisting># coredumpctl info 6654</programlisting>
</example>
<example>
<title>Extract the last coredump of /usr/bin/bar to a file named bar.coredump</title>
<example>
<title>Extract the last coredump of /usr/bin/bar to a file named
<filename noindex="true">bar.coredump</filename></title>
<programlisting># coredumpctl -o bar.coredump dump /usr/bin/bar</programlisting>
</example>
</refsect1>
<programlisting># coredumpctl -o bar.coredump dump /usr/bin/bar</programlisting>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>coredump.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>gdb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -27,389 +27,366 @@
-->
<refentry id="crypttab" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>crypttab</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Documentation</contrib>
<firstname>Miloslav</firstname>
<surname>Trmac</surname>
<email>mitr@redhat.com</email>
</author>
<author>
<contrib>Documentation</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>crypttab</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>crypttab</refname>
<refpurpose>Configuration for encrypted block devices</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/crypttab</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/crypttab</filename> file
describes encrypted block devices that are set up
during system boot.</para>
<para>Empty lines and lines starting with the <literal>#</literal>
character are ignored. Each of the remaining lines
describes one encrypted block device, fields on the
line are delimited by white space. The first two
fields are mandatory, the remaining two are
optional.</para>
<para>Setting up encrypted block devices using this file
supports three encryption modes: LUKS, TrueCrypt and plain.
See <citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for more information about each mode. When no mode is specified
in the options field and the block device contains a LUKS
signature, it is opened as a LUKS device; otherwise, it is
assumed to be in raw dm-crypt (plain mode) format.</para>
<para>The first field contains the name of the
resulting encrypted block device; the device is set up
within <filename>/dev/mapper/</filename>.</para>
<para>The second field contains a path to the
underlying block device or file, or a specification of a block
device via <literal>UUID=</literal> followed by the
UUID.</para>
<para>The third field specifies the encryption
password. If the field is not present or the password
is set to <literal>none</literal> or <literal>-</literal>,
the password has to be manually entered during system boot.
Otherwise, the field is interpreted as a absolute path to
a file containing the encryption password. For swap encryption,
<filename>/dev/urandom</filename> or the hardware
device <filename>/dev/hw_random</filename> can be used
as the password file; using
<filename>/dev/random</filename> may prevent boot
completion if the system does not have enough entropy
to generate a truly random encryption key.</para>
<para>The fourth field, if present, is a
comma-delimited list of options. The following
options are recognized:</para>
<variablelist class='fstab-options'>
<varlistentry>
<term><option>discard</option></term>
<listitem><para>Allow discard requests to be
passed through the encrypted block device. This
improves performance on SSD storage but has
security implications.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>cipher=</option></term>
<listitem><para>Specifies the cipher to use. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option. A cipher with unpredictable IV
values, such as <literal>aes-cbc-essiv:sha256</literal>,
is recommended.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>hash=</option></term>
<listitem><para>Specifies the hash to use for
password hashing. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>header=</option></term>
<listitem><para>Use a detached (separated)
metadata device or file where the LUKS header
is stored. This option is only relevant for
LUKS devices. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>keyfile-offset=</option></term>
<listitem><para>Specifies the number of bytes to
skip at the start of the key file. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>keyfile-size=</option></term>
<listitem><para>Specifies the maximum number
of bytes to read from the key file. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option. This option is ignored in plain
encryption mode, as the key file size is then
given by the key size.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>key-slot=</option></term>
<listitem><para>Specifies the key slot to
compare the passphrase or key against.
If the key slot does not match the given
passphrase or key, but another would, the
setup of the device will fail regardless.
This option implies <option>luks</option>. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values. The default is to try
all key slots in sequential order.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>luks</option></term>
<listitem><para>Force LUKS mode. When this mode
is used, the following options are ignored since
they are provided by the LUKS header on the
device: <option>cipher=</option>,
<option>hash=</option>,
<option>size=</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>noauto</option></term>
<listitem><para>This device will not be
automatically unlocked on boot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>nofail</option></term>
<listitem><para>The system will not wait for the
device to show up and be unlocked at boot, and
not fail the boot if it does not show up.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>plain</option></term>
<listitem><para>Force plain encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>read-only</option></term><term><option>readonly</option></term>
<listitem><para>Set up the encrypted block
device in read-only mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>size=</option></term>
<listitem><para>Specifies the key size
in bits. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of
this option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>swap</option></term>
<listitem><para>The encrypted block device will
be used as a swap device, and will be formatted
accordingly after setting up the encrypted
block device, with
<citerefentry project='man-pages'><refentrytitle>mkswap</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
This option implies <option>plain</option>.</para>
<para>WARNING: Using the <option>swap</option>
option will destroy the contents of the named
partition during every boot, so make sure the
underlying block device is specified correctly.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt</option></term>
<listitem><para>Use TrueCrypt encryption mode.
When this mode is used, the following options are
ignored since they are provided by the TrueCrypt
header on the device or do not apply:
<option>cipher=</option>,
<option>hash=</option>,
<option>keyfile-offset=</option>,
<option>keyfile-size=</option>,
<option>size=</option>.</para>
<para>When this mode is used, the passphrase is
read from the key file given in the third field.
Only the first line of this file is read,
excluding the new line character.</para>
<para>Note that the TrueCrypt format uses both
passphrase and key files to derive a password
for the volume. Therefore, the passphrase and
all key files need to be provided. Use
<option>tcrypt-keyfile=</option> to provide
the absolute path to all key files. When using
an empty passphrase in combination with one or
more key files, use <literal>/dev/null</literal>
as the password file in the third field.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-hidden</option></term>
<listitem><para>Use the hidden TrueCrypt volume.
This option implies <option>tcrypt</option>.</para>
<para>This will map the hidden volume that is
inside of the volume provided in the second
field. Please note that there is no protection
for the hidden volume if the outer volume is
mounted instead. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for more information on this limitation.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-keyfile=</option></term>
<listitem><para>Specifies the absolute path to a
key file to use for a TrueCrypt volume. This
implies <option>tcrypt</option> and can be
used more than once to provide several key
files.</para>
<para>See the entry for <option>tcrypt</option>
on the behavior of the passphrase and key files
when using TrueCrypt encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-system</option></term>
<listitem><para>Use TrueCrypt in system
encryption mode. This option implies
<option>tcrypt</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>timeout=</option></term>
<listitem><para>Specifies the timeout for
querying for a password. If no unit is
specified, seconds is used. Supported units are
s, ms, us, min, h, d. A timeout of 0 waits
indefinitely (which is the default).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>x-systemd.device-timeout=</option></term>
<listitem><para>Specifies how long
systemd should wait for a device to
show up before giving up on the
entry. The argument is a time in
seconds or explicitly specified
units of <literal>s</literal>,
<literal>min</literal>,
<literal>h</literal>,
<literal>ms</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tmp</option></term>
<listitem><para>The encrypted block device will
be prepared for using it as <filename>/tmp</filename>;
it will be formatted using
<citerefentry project='man-pages'><refentrytitle>mke2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
This option implies <option>plain</option>.</para>
<para>WARNING: Using the <option>tmp</option>
option will destroy the contents of the named
partition during every boot, so make sure the
underlying block device is specified correctly.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tries=</option></term>
<listitem><para>Specifies the maximum number of
times the user is queried for a password.
The default is 3. If set to 0, the user is
queried for a password indefinitely.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>verify</option></term>
<listitem><para> If the encryption password is
read from console, it has to be entered twice to
prevent typos.</para></listitem>
</varlistentry>
</variablelist>
<para>At early boot and when the system manager
configuration is reloaded, this file is translated into
native systemd units
by <citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Example</title>
<example>
<title>/etc/crypttab example</title>
<para>Set up four encrypted block devices. One using
LUKS for normal storage, another one for usage as a swap
device and two TrueCrypt volumes.</para>
<programlisting>luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
swap /dev/sda7 /dev/urandom swap
<refentryinfo>
<title>crypttab</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Documentation</contrib>
<firstname>Miloslav</firstname>
<surname>Trmac</surname>
<email>mitr@redhat.com</email>
</author>
<author>
<contrib>Documentation</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>crypttab</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>crypttab</refname>
<refpurpose>Configuration for encrypted block devices</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/crypttab</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/crypttab</filename> file describes
encrypted block devices that are set up during system boot.</para>
<para>Empty lines and lines starting with the <literal>#</literal>
character are ignored. Each of the remaining lines describes one
encrypted block device, fields on the line are delimited by white
space. The first two fields are mandatory, the remaining two are
optional.</para>
<para>Setting up encrypted block devices using this file supports
three encryption modes: LUKS, TrueCrypt and plain. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for more information about each mode. When no mode is specified in
the options field and the block device contains a LUKS signature,
it is opened as a LUKS device; otherwise, it is assumed to be in
raw dm-crypt (plain mode) format.</para>
<para>The first field contains the name of the resulting encrypted
block device; the device is set up within
<filename>/dev/mapper/</filename>.</para>
<para>The second field contains a path to the underlying block
device or file, or a specification of a block device via
<literal>UUID=</literal> followed by the UUID.</para>
<para>The third field specifies the encryption password. If the
field is not present or the password is set to
<literal>none</literal> or <literal>-</literal>, the password has
to be manually entered during system boot. Otherwise, the field is
interpreted as a absolute path to a file containing the encryption
password. For swap encryption, <filename>/dev/urandom</filename>
or the hardware device <filename>/dev/hw_random</filename> can be
used as the password file; using <filename>/dev/random</filename>
may prevent boot completion if the system does not have enough
entropy to generate a truly random encryption key.</para>
<para>The fourth field, if present, is a comma-delimited list of
options. The following options are recognized:</para>
<variablelist class='fstab-options'>
<varlistentry>
<term><option>discard</option></term>
<listitem><para>Allow discard requests to be passed through
the encrypted block device. This improves performance on SSD
storage but has security implications.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>cipher=</option></term>
<listitem><para>Specifies the cipher to use. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this option. A
cipher with unpredictable IV values, such as
<literal>aes-cbc-essiv:sha256</literal>, is
recommended.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>hash=</option></term>
<listitem><para>Specifies the hash to use for password
hashing. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this
option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>header=</option></term>
<listitem><para>Use a detached (separated) metadata device or
file where the LUKS header is stored. This option is only
relevant for LUKS devices. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this
option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>keyfile-offset=</option></term>
<listitem><para>Specifies the number of bytes to skip at the
start of the key file. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this
option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>keyfile-size=</option></term>
<listitem><para>Specifies the maximum number of bytes to read
from the key file. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this option. This
option is ignored in plain encryption mode, as the key file
size is then given by the key size.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>key-slot=</option></term>
<listitem><para>Specifies the key slot to compare the
passphrase or key against. If the key slot does not match the
given passphrase or key, but another would, the setup of the
device will fail regardless. This option implies
<option>luks</option>. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values. The default is to try all key slots in
sequential order.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>luks</option></term>
<listitem><para>Force LUKS mode. When this mode is used, the
following options are ignored since they are provided by the
LUKS header on the device: <option>cipher=</option>,
<option>hash=</option>,
<option>size=</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>noauto</option></term>
<listitem><para>This device will not be automatically unlocked
on boot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>nofail</option></term>
<listitem><para>The system will not wait for the device to
show up and be unlocked at boot, and not fail the boot if it
does not show up.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>plain</option></term>
<listitem><para>Force plain encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>read-only</option></term><term><option>readonly</option></term>
<listitem><para>Set up the encrypted block device in read-only
mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>size=</option></term>
<listitem><para>Specifies the key size in bits. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for possible values and the default value of this
option.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>swap</option></term>
<listitem><para>The encrypted block device will be used as a
swap device, and will be formatted accordingly after setting
up the encrypted block device, with
<citerefentry project='man-pages'><refentrytitle>mkswap</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
This option implies <option>plain</option>.</para>
<para>WARNING: Using the <option>swap</option> option will
destroy the contents of the named partition during every boot,
so make sure the underlying block device is specified
correctly.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt</option></term>
<listitem><para>Use TrueCrypt encryption mode. When this mode
is used, the following options are ignored since they are
provided by the TrueCrypt header on the device or do not
apply:
<option>cipher=</option>,
<option>hash=</option>,
<option>keyfile-offset=</option>,
<option>keyfile-size=</option>,
<option>size=</option>.</para>
<para>When this mode is used, the passphrase is read from the
key file given in the third field. Only the first line of this
file is read, excluding the new line character.</para>
<para>Note that the TrueCrypt format uses both passphrase and
key files to derive a password for the volume. Therefore, the
passphrase and all key files need to be provided. Use
<option>tcrypt-keyfile=</option> to provide the absolute path
to all key files. When using an empty passphrase in
combination with one or more key files, use
<literal>/dev/null</literal> as the password file in the third
field.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-hidden</option></term>
<listitem><para>Use the hidden TrueCrypt volume. This option
implies <option>tcrypt</option>.</para>
<para>This will map the hidden volume that is inside of the
volume provided in the second field. Please note that there is
no protection for the hidden volume if the outer volume is
mounted instead. See
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
for more information on this limitation.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-keyfile=</option></term>
<listitem><para>Specifies the absolute path to a key file to
use for a TrueCrypt volume. This implies
<option>tcrypt</option> and can be used more than once to
provide several key files.</para>
<para>See the entry for <option>tcrypt</option> on the
behavior of the passphrase and key files when using TrueCrypt
encryption mode.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tcrypt-system</option></term>
<listitem><para>Use TrueCrypt in system encryption mode. This
option implies <option>tcrypt</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>timeout=</option></term>
<listitem><para>Specifies the timeout for querying for a
password. If no unit is specified, seconds is used. Supported
units are s, ms, us, min, h, d. A timeout of 0 waits
indefinitely (which is the default).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>x-systemd.device-timeout=</option></term>
<listitem><para>Specifies how long systemd should wait for a
device to show up before giving up on the entry. The argument
is a time in seconds or explicitly specified units of
<literal>s</literal>,
<literal>min</literal>,
<literal>h</literal>,
<literal>ms</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tmp</option></term>
<listitem><para>The encrypted block device will be prepared
for using it as <filename>/tmp</filename>; it will be
formatted using
<citerefentry project='man-pages'><refentrytitle>mke2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
This option implies <option>plain</option>.</para>
<para>WARNING: Using the <option>tmp</option> option will
destroy the contents of the named partition during every boot,
so make sure the underlying block device is specified
correctly.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>tries=</option></term>
<listitem><para>Specifies the maximum number of times the user
is queried for a password. The default is 3. If set to 0, the
user is queried for a password indefinitely.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>verify</option></term>
<listitem><para> If the encryption password is read from
console, it has to be entered twice to prevent
typos.</para></listitem>
</varlistentry>
</variablelist>
<para>At early boot and when the system manager configuration is
reloaded, this file is translated into native systemd units by
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Example</title>
<example>
<title>/etc/crypttab example</title>
<para>Set up four encrypted block devices. One using LUKS for
normal storage, another one for usage as a swap device and two
TrueCrypt volumes.</para>
<programlisting>luks UUID=2505567a-9e27-4efe-a4d5-15ad146c258b
swap /dev/sda7 /dev/urandom swap
truecrypt /dev/sda2 /etc/container_password tcrypt
hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
</example>
</refsect1>
hidden /mnt/tc_hidden /dev/null tcrypt-hidden,tcrypt-keyfile=/etc/keyfile</programlisting>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>mkswap</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>mke2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>mkswap</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>mke2fs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,151 +22,147 @@
-->
<refentry id="halt"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>halt</title>
<productname>systemd</productname>
<refentryinfo>
<title>halt</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>halt</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>halt</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>halt</refname>
<refname>poweroff</refname>
<refname>reboot</refname>
<refpurpose>Halt, power-off or reboot the machine</refpurpose>
</refnamediv>
<refnamediv>
<refname>halt</refname>
<refname>poweroff</refname>
<refname>reboot</refname>
<refpurpose>Halt, power-off or reboot the machine</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>halt <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>poweroff <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>reboot <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>halt</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>poweroff</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>reboot</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>halt</command>,
<command>poweroff</command>, <command>reboot</command>
may be used to halt, power-off or reboot the
machine.</para>
<para><command>halt</command>, <command>poweroff</command>,
<command>reboot</command> may be used to halt, power-off or reboot
the machine.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
<varlistentry>
<term><option>--halt</option></term>
<varlistentry>
<term><option>--halt</option></term>
<listitem><para>Halt the machine,
regardless of which one of the three
commands is invoked.</para></listitem>
</varlistentry>
<listitem><para>Halt the machine, regardless of which one of
the three commands is invoked.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--poweroff</option></term>
<varlistentry>
<term><option>-p</option></term>
<term><option>--poweroff</option></term>
<listitem><para>Power-off the machine,
regardless of which one of the three
commands is invoked.</para></listitem>
</varlistentry>
<listitem><para>Power-off the machine, regardless of which one
of the three commands is invoked.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--reboot</option></term>
<varlistentry>
<term><option>--reboot</option></term>
<listitem><para>Reboot the machine,
regardless of which one of the three
commands is invoked.</para></listitem>
</varlistentry>
<listitem><para>Reboot the machine, regardless of which one of
the three commands is invoked.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f</option></term>
<term><option>--force</option></term>
<varlistentry>
<term><option>-f</option></term>
<term><option>--force</option></term>
<listitem><para>Force immediate halt,
power-off, reboot. Do not contact the
init system.</para></listitem>
</varlistentry>
<listitem><para>Force immediate halt, power-off, reboot. Do
not contact the init system.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-w</option></term>
<term><option>--wtmp-only</option></term>
<varlistentry>
<term><option>-w</option></term>
<term><option>--wtmp-only</option></term>
<listitem><para>Only write wtmp
shutdown entry, do not actually halt,
power-off, reboot.</para></listitem>
</varlistentry>
<listitem><para>Only write wtmp shutdown entry, do not
actually halt, power-off, reboot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<term><option>--no-wtmp</option></term>
<varlistentry>
<term><option>-d</option></term>
<term><option>--no-wtmp</option></term>
<listitem><para>Do not write wtmp
shutdown entry.</para></listitem>
</varlistentry>
<listitem><para>Do not write wtmp shutdown
entry.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-wall</option></term>
<varlistentry>
<term><option>--no-wall</option></term>
<listitem><para>Do not send wall
message before
halt, power-off, reboot.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Do not send wall message before halt,
power-off, reboot.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>These are legacy commands available for
compatibility only.</para>
</refsect1>
<para>These are legacy commands available for compatibility
only.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,84 +23,80 @@
-->
<refentry id="hostname">
<refentryinfo>
<title>hostname</title>
<productname>systemd</productname>
<refentryinfo>
<title>hostname</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>hostname</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>hostname</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>hostname</refname>
<refpurpose>Local hostname configuration file</refpurpose>
</refnamediv>
<refnamediv>
<refname>hostname</refname>
<refpurpose>Local hostname configuration file</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/hostname</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/hostname</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/hostname</filename> file
configures the name of the local system that is set
during boot using the
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
system call. It should contain a single
newline-terminated hostname string. The
hostname may be a free-form string up to 64 characters
in length; however, it is recommended that it consists
only of 7-bit ASCII lower-case characters and no spaces or dots,
and limits itself to the format allowed for DNS domain
name labels, even though this is not a
strict requirement.</para>
<para>The <filename>/etc/hostname</filename> file configures the
name of the local system that is set during boot using the
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
system call. It should contain a single newline-terminated
hostname string. The hostname may be a free-form string up to 64
characters in length; however, it is recommended that it consists
only of 7-bit ASCII lower-case characters and no spaces or dots,
and limits itself to the format allowed for DNS domain name
labels, even though this is not a strict requirement.</para>
<para>Depending on the operating system, other
configuration files might be checked for configuration
of the hostname as well, however only as fallback.</para>
<para>Depending on the operating system, other configuration files
might be checked for configuration of the hostname as well,
however only as fallback.</para>
<para>You may use
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the value of this file during runtime from
the command line. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize it on mounted (but not booted) system
images.</para>
</refsect1>
<para>You may use
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the value of this file during runtime from the command
line. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize it on mounted (but not booted) system images.</para>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<para>The simple configuration file format of
<filename>/etc/hostname</filename> originates from
Debian GNU/Linux.</para>
</refsect1>
<para>The simple configuration file format of
<filename>/etc/hostname</filename> originates from Debian
GNU/Linux.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,276 +22,239 @@
-->
<refentry id="hostnamectl" conditional='ENABLE_HOSTNAMED'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>hostnamectl</title>
<productname>systemd</productname>
<refentryinfo>
<title>hostnamectl</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>hostnamectl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>hostnamectl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>hostnamectl</refname>
<refpurpose>Control the system hostname</refpurpose>
</refnamediv>
<refnamediv>
<refname>hostnamectl</refname>
<refpurpose>Control the system hostname</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>hostnamectl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>hostnamectl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>hostnamectl</command> may be used to
query and change the system hostname and related
settings.</para>
<para><command>hostnamectl</command> may be used to query and
change the system hostname and related settings.</para>
<para>This tool distinguishes three different
hostnames: the high-level "pretty" hostname which
might include all kinds of special characters
(e.g. "Lennart's Laptop"), the static hostname which
is used to initialize the kernel hostname at boot
(e.g. "lennarts-laptop"), and the transient hostname
which is a default received from network configuration.
If a static hostname is set, and is valid (something other
than localhost), then the transient hostname is not used.</para>
<para>This tool distinguishes three different hostnames: the
high-level "pretty" hostname which might include all kinds of
special characters (e.g. "Lennart's Laptop"), the static hostname
which is used to initialize the kernel hostname at boot (e.g.
"lennarts-laptop"), and the transient hostname which is a default
received from network configuration. If a static hostname is set,
and is valid (something other than localhost), then the transient
hostname is not used.</para>
<para>Note that the pretty hostname has little
restrictions on the characters used, while the static
and transient hostnames are limited to the usually
accepted characters of Internet domain names.</para>
<para>Note that the pretty hostname has little restrictions on the
characters used, while the static and transient hostnames are
limited to the usually accepted characters of Internet domain
names.</para>
<para>The static hostname is stored in
<filename>/etc/hostname</filename>, see
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information. The pretty hostname, chassis
type, and icon name are stored in
<filename>/etc/machine-info</filename>, see
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>The static hostname is stored in
<filename>/etc/hostname</filename>, see
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information. The pretty hostname, chassis type, and icon
name are stored in <filename>/etc/machine-info</filename>, see
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the system host name for mounted (but
not booted) system images.</para>
</refsect1>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the system host name for mounted (but not booted)
system images.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<listitem><para>Do not query the user
for authentication for privileged
operations.</para></listitem>
</varlistentry>
<listitem><para>Do not query the user for authentication for
privileged operations.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--static</option></term>
<term><option>--transient</option></term>
<term><option>--pretty</option></term>
<varlistentry>
<term><option>--static</option></term>
<term><option>--transient</option></term>
<term><option>--pretty</option></term>
<listitem><para>If
<command>status</command> is used (or
no explicit command is given) and one
of those fields is given,
<command>hostnamectl</command> will
print out just this selected
hostname.</para>
<listitem><para>If <command>status</command> is used (or no
explicit command is given) and one of those fields is given,
<command>hostnamectl</command> will print out just this
selected hostname.</para>
<para>If used with
<command>set-hostname</command>, only
the selected hostname(s) will be
updated. When more than one of those
options is used, all the specified
hostnames will be updated.
</para></listitem>
</varlistentry>
<para>If used with <command>set-hostname</command>, only the
selected hostname(s) will be updated. When more than one of
those options is used, all the specified hostnames will be
updated. </para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<para>The following commands are understood:</para>
<para>The following commands are understood:</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem><para>Show current system
hostname and related
information.</para></listitem>
</varlistentry>
<listitem><para>Show current system
hostname and related
information.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-hostname <replaceable>NAME</replaceable></command></term>
<varlistentry>
<term><command>set-hostname <replaceable>NAME</replaceable></command></term>
<listitem><para>Set the system
hostname to
<replaceable>NAME</replaceable>. By
default, this will alter the pretty,
the static, and the transient hostname
alike; however, if one or more of
<option>--static</option>,
<option>--transient</option>,
<option>--pretty</option> are used,
only the selected hostnames are
changed. If the pretty hostname is
being set, and static or transient are
being set as well, the specified
hostname will be simplified in regards
to the character set used before the
latter are updated. This is done by
replacing spaces with
<literal>-</literal> and removing
special characters. This ensures that
the pretty and the static hostname are
always closely related while still
following the validity rules of the
specific name. This simplification of
the hostname string is not done if
only the transient and/or static host
names are set, and the pretty host
name is left untouched.</para>
<listitem><para>Set the system hostname to
<replaceable>NAME</replaceable>. By default, this will alter
the pretty, the static, and the transient hostname alike;
however, if one or more of <option>--static</option>,
<option>--transient</option>, <option>--pretty</option> are
used, only the selected hostnames are changed. If the pretty
hostname is being set, and static or transient are being set
as well, the specified hostname will be simplified in regards
to the character set used before the latter are updated. This
is done by replacing spaces with <literal>-</literal> and
removing special characters. This ensures that the pretty and
the static hostname are always closely related while still
following the validity rules of the specific name. This
simplification of the hostname string is not done if only the
transient and/or static host names are set, and the pretty
host name is left untouched.</para>
<para>Pass the empty string
<literal></literal> as the hostname to
reset the selected hostnames to their
default (usually
<literal>localhost</literal>).</para></listitem>
</varlistentry>
<para>Pass the empty string <literal></literal> as the
hostname to reset the selected hostnames to their default
(usually <literal>localhost</literal>).</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-icon-name <replaceable>NAME</replaceable></command></term>
<varlistentry>
<term><command>set-icon-name <replaceable>NAME</replaceable></command></term>
<listitem><para>Set the system icon
name to
<replaceable>NAME</replaceable>. The
icon name is used by some graphical
applications to visualize this host.
The icon name should follow the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
Naming Specification</ulink>.</para>
<listitem><para>Set the system icon name to
<replaceable>NAME</replaceable>. The icon name is used by some
graphical applications to visualize this host. The icon name
should follow the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">Icon
Naming Specification</ulink>.</para>
<para>Pass an empty string to reset
the icon name to the default value,
which is determined from chassis type
(see below) and possibly other
parameters.</para></listitem>
</varlistentry>
<para>Pass an empty string to reset the icon name to the
default value, which is determined from chassis type (see
below) and possibly other parameters.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-chassis <replaceable>TYPE</replaceable></command></term>
<varlistentry>
<term><command>set-chassis <replaceable>TYPE</replaceable></command></term>
<listitem><para>Set the chassis type
to <replaceable>TYPE</replaceable>.
The chassis type is used by some
graphical applications to visualize
the host or alter user interaction.
Currently, the following chassis types
are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>,
<literal>embedded</literal> as well as
the special chassis types
<literal>vm</literal> and
<literal>container</literal> for
virtualized systems that lack an
immediate physical chassis.</para>
<listitem><para>Set the chassis type to
<replaceable>TYPE</replaceable>. The chassis type is used by
some graphical applications to visualize the host or alter
user interaction. Currently, the following chassis types are
defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>,
<literal>embedded</literal>,
as well as the special chassis types
<literal>vm</literal> and
<literal>container</literal> for virtualized systems that lack
an immediate physical chassis.</para>
<para>Pass an empty string to reset
the chassis type to the default value
which is determined from the firmware
and possibly other parameters.</para>
</listitem>
</varlistentry>
<para>Pass an empty string to reset the chassis type to the
default value which is determined from the firmware and
possibly other parameters.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set-deployment <replaceable>ENVIRONMENT</replaceable></command></term>
<varlistentry>
<term><command>set-deployment <replaceable>ENVIRONMENT</replaceable></command></term>
<listitem><para>Set the deployment
environment
description. <replaceable>ENVIRONMENT</replaceable>
must be a single word without any
control characters. One of the
following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para>
<listitem><para>Set the deployment environment description.
<replaceable>ENVIRONMENT</replaceable> must be a single word
without any control characters. One of the following is
suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para>
<para>Pass an empty string to reset to
the default empty value.</para>
</listitem>
</varlistentry>
<para>Pass an empty string to reset to the default empty
value.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><command>set-location <replaceable>LOCATION</replaceable></command></term>
<varlistentry>
<term><command>set-location <replaceable>LOCATION</replaceable></command></term>
<listitem><para>Set the location
string for the system, if it is
known. <replaceable>LOCATION</replaceable>
should be a human-friendly, free-form
string describing the physical
location of the system, if it is known
and applicable. This may be as generic
as <literal>Berlin, Germany</literal>
or as specific as <literal>Left Rack,
2nd Shelf</literal>.</para>
<listitem><para>Set the location string for the system, if it
is known. <replaceable>LOCATION</replaceable> should be a
human-friendly, free-form string describing the physical
location of the system, if it is known and applicable. This
may be as generic as <literal>Berlin, Germany</literal> or as
specific as <literal>Left Rack, 2nd Shelf</literal>.</para>
<para>Pass an empty string to reset to
the default empty value.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<para>Pass an empty string to reset to the default empty
value.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,463 +23,359 @@
-->
<refentry id="journald.conf"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>journald.conf</title>
<productname>systemd</productname>
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>journald.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>journald.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>journald.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>journald.conf</refname>
<refname>journald.conf.d</refname>
<refpurpose>Journal service configuration files</refpurpose>
</refnamediv>
<refnamediv>
<refname>journald.conf</refname>
<refname>journald.conf.d</refname>
<refpurpose>Journal service configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/journald.conf</filename></para>
<para><filename>/etc/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/journald.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/systemd/journald.conf</filename></para>
<para><filename>/etc/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/journald.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/journald.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>These files configure various parameters of the
systemd journal service,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para>These files configure various parameters of the systemd
journal service,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>All options are configured in the
<literal>[Journal]</literal> section:</para>
<para>All options are configured in the
<literal>[Journal]</literal> section:</para>
<variablelist>
<variablelist>
<varlistentry>
<term><varname>Storage=</varname></term>
<varlistentry>
<term><varname>Storage=</varname></term>
<listitem><para>Controls where to
store journal data. One of
<literal>volatile</literal>,
<literal>persistent</literal>,
<literal>auto</literal> and
<literal>none</literal>. If
<literal>volatile</literal>, journal
log data will be stored only in
memory, i.e. below the
<filename>/run/log/journal</filename>
hierarchy (which is created if
needed). If
<literal>persistent</literal>, data will
be stored preferably on disk,
i.e. below the
<filename>/var/log/journal</filename>
hierarchy (which is created if
needed), with a fallback to
<filename>/run/log/journal</filename>
(which is created if needed), during
early boot and if the disk is not
writable. <literal>auto</literal> is
similar to
<literal>persistent</literal> but the
directory
<filename>/var/log/journal</filename>
is not created if needed, so that its
existence controls where log data
goes. <literal>none</literal> turns
off all storage, all log data received
will be dropped. Forwarding to other
targets, such as the console, the
kernel log buffer or a syslog daemon
will still work however. Defaults to
<literal>auto</literal>.</para></listitem>
</varlistentry>
<listitem><para>Controls where to store journal data. One of
<literal>volatile</literal>,
<literal>persistent</literal>,
<literal>auto</literal> and
<literal>none</literal>. If
<literal>volatile</literal>, journal
log data will be stored only in memory, i.e. below the
<filename>/run/log/journal</filename> hierarchy (which is
created if needed). If <literal>persistent</literal>, data
will be stored preferably on disk, i.e. below the
<filename>/var/log/journal</filename> hierarchy (which is
created if needed), with a fallback to
<filename>/run/log/journal</filename> (which is created if
needed), during early boot and if the disk is not writable.
<literal>auto</literal> is similar to
<literal>persistent</literal> but the directory
<filename>/var/log/journal</filename> is not created if
needed, so that its existence controls where log data goes.
<literal>none</literal> turns off all storage, all log data
received will be dropped. Forwarding to other targets, such as
the console, the kernel log buffer or a syslog daemon will
still work however. Defaults to
<literal>auto</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Compress=</varname></term>
<varlistentry>
<term><varname>Compress=</varname></term>
<listitem><para>Takes a boolean
value. If enabled (the default), data
objects that shall be stored in the
journal and are larger than a certain
threshold are compressed before they
are written to the file
system.</para></listitem>
</varlistentry>
<listitem><para>Takes a boolean value. If enabled (the
default), data objects that shall be stored in the journal and
are larger than a certain threshold are compressed before they
are written to the file system.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>Seal=</varname></term>
<varlistentry>
<term><varname>Seal=</varname></term>
<listitem><para>Takes a boolean
value. If enabled (the default), and a
sealing key is available (as created
by
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--setup-keys</option>
command), Forward Secure Sealing (FSS)
for all persistent journal files is
enabled. FSS is based on <ulink
url="https://eprint.iacr.org/2013/397">Seekable
Sequential Key Generators</ulink> by
G. A. Marson and B. Poettering
(doi:10.1007/978-3-642-40203-6_7)
and may be used to protect journal files
from unnoticed alteration.</para></listitem>
</varlistentry>
<listitem><para>Takes a boolean value. If enabled (the
default), and a sealing key is available (as created by
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--setup-keys</option> command), Forward Secure Sealing
(FSS) for all persistent journal files is enabled. FSS is
based on <ulink
url="https://eprint.iacr.org/2013/397">Seekable Sequential Key
Generators</ulink> by G. A. Marson and B. Poettering
(doi:10.1007/978-3-642-40203-6_7) and may be used to protect
journal files from unnoticed alteration.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SplitMode=</varname></term>
<varlistentry>
<term><varname>SplitMode=</varname></term>
<listitem><para>Controls whether to
split up journal files per user. One
of <literal>uid</literal>,
<literal>login</literal> and
<literal>none</literal>. If
<literal>uid</literal>, all users will
get each their own journal files
regardless of whether they possess a
login session or not, however system
users will log into the system
journal. If <literal>login</literal>,
actually logged-in users will get each
their own journal files, but users
without login session and system users
will log into the system journal. If
<literal>none</literal>, journal files
are not split up by user and all
messages are instead stored in the
single system journal. Note that
splitting up journal files by user is
only available for journals stored
persistently. If journals are stored
on volatile storage (see above), only
a single journal file for all user IDs
is kept. Defaults to
<literal>uid</literal>.</para></listitem>
</varlistentry>
<listitem><para>Controls whether to split up journal files per
user. One of <literal>uid</literal>, <literal>login</literal>
and <literal>none</literal>. If <literal>uid</literal>, all
users will get each their own journal files regardless of
whether they possess a login session or not, however system
users will log into the system journal. If
<literal>login</literal>, actually logged-in users will get
each their own journal files, but users without login session
and system users will log into the system journal. If
<literal>none</literal>, journal files are not split up by
user and all messages are instead stored in the single system
journal. Note that splitting up journal files by user is only
available for journals stored persistently. If journals are
stored on volatile storage (see above), only a single journal
file for all user IDs is kept. Defaults to
<literal>uid</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>RateLimitInterval=</varname></term>
<term><varname>RateLimitBurst=</varname></term>
<varlistentry>
<term><varname>RateLimitInterval=</varname></term>
<term><varname>RateLimitBurst=</varname></term>
<listitem><para>Configures the rate
limiting that is applied to all
messages generated on the system. If,
in the time interval defined by
<varname>RateLimitInterval=</varname>,
more messages than specified in
<varname>RateLimitBurst=</varname> are
logged by a service, all further
messages within the interval are
dropped until the interval is over. A
message about the number of dropped
messages is generated. This rate
limiting is applied per-service, so
that two services which log do not
interfere with each other's
limits. Defaults to 1000 messages in
30s. The time specification for
<varname>RateLimitInterval=</varname>
may be specified in the following
units: <literal>s</literal>,
<literal>min</literal>,
<literal>h</literal>,
<literal>ms</literal>,
<literal>us</literal>. To turn off any
kind of rate limiting, set either
value to 0.</para></listitem>
</varlistentry>
<listitem><para>Configures the rate limiting that is applied
to all messages generated on the system. If, in the time
interval defined by <varname>RateLimitInterval=</varname>,
more messages than specified in
<varname>RateLimitBurst=</varname> are logged by a service,
all further messages within the interval are dropped until the
interval is over. A message about the number of dropped
messages is generated. This rate limiting is applied
per-service, so that two services which log do not interfere
with each other's limits. Defaults to 1000 messages in 30s.
The time specification for
<varname>RateLimitInterval=</varname> may be specified in the
following units: <literal>s</literal>, <literal>min</literal>,
<literal>h</literal>, <literal>ms</literal>,
<literal>us</literal>. To turn off any kind of rate limiting,
set either value to 0.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SystemMaxUse=</varname></term>
<term><varname>SystemKeepFree=</varname></term>
<term><varname>SystemMaxFileSize=</varname></term>
<term><varname>RuntimeMaxUse=</varname></term>
<term><varname>RuntimeKeepFree=</varname></term>
<term><varname>RuntimeMaxFileSize=</varname></term>
<varlistentry>
<term><varname>SystemMaxUse=</varname></term>
<term><varname>SystemKeepFree=</varname></term>
<term><varname>SystemMaxFileSize=</varname></term>
<term><varname>RuntimeMaxUse=</varname></term>
<term><varname>RuntimeKeepFree=</varname></term>
<term><varname>RuntimeMaxFileSize=</varname></term>
<listitem><para>Enforce size limits on
the journal files stored. The options
prefixed with
<literal>System</literal> apply to the
journal files when stored on a
persistent file system, more
specifically
<filename>/var/log/journal</filename>. The
options prefixed with
<literal>Runtime</literal> apply to
the journal files when stored on a
volatile in-memory file system, more
specifically
<filename>/run/log/journal</filename>. The
former is used only when
<filename>/var</filename> is mounted,
writable, and the directory
<filename>/var/log/journal</filename>
exists. Otherwise, only the latter
applies. Note that this means that
during early boot and if the
administrator disabled persistent
logging, only the latter options apply,
while the former apply if persistent
logging is enabled and the system is
fully booted
up. <command>journalctl</command> and
<command>systemd-journald</command>
ignore all files with names not ending
with <literal>.journal</literal> or
<literal>.journal~</literal>, so only
such files, located in the appropriate
directories, are taken into account
when calculating current disk usage.
</para>
<listitem><para>Enforce size limits on the journal files
stored. The options prefixed with <literal>System</literal>
apply to the journal files when stored on a persistent file
system, more specifically
<filename>/var/log/journal</filename>. The options prefixed
with <literal>Runtime</literal> apply to the journal files
when stored on a volatile in-memory file system, more
specifically <filename>/run/log/journal</filename>. The former
is used only when <filename>/var</filename> is mounted,
writable, and the directory
<filename>/var/log/journal</filename> exists. Otherwise, only
the latter applies. Note that this means that during early
boot and if the administrator disabled persistent logging,
only the latter options apply, while the former apply if
persistent logging is enabled and the system is fully booted
up. <command>journalctl</command> and
<command>systemd-journald</command> ignore all files with
names not ending with <literal>.journal</literal> or
<literal>.journal~</literal>, so only such files, located in
the appropriate directories, are taken into account when
calculating current disk usage.
</para>
<para><varname>SystemMaxUse=</varname>
and <varname>RuntimeMaxUse=</varname>
control how much disk space the
journal may use up at maximum.
<varname>SystemKeepFree=</varname> and
<varname>RuntimeKeepFree=</varname>
control how much disk space
systemd-journald shall leave free for
other uses.
<command>systemd-journald</command>
will respect both limits and use the
smaller of the two values.</para>
<para><varname>SystemMaxUse=</varname> and
<varname>RuntimeMaxUse=</varname> control how much disk space
the journal may use up at maximum.
<varname>SystemKeepFree=</varname> and
<varname>RuntimeKeepFree=</varname> control how much disk
space systemd-journald shall leave free for other uses.
<command>systemd-journald</command> will respect both limits
and use the smaller of the two values.</para>
<para>The first pair defaults to 10%
and the second to 15% of the size of
the respective file system. If the
file system is nearly full and either
<varname>SystemKeepFree=</varname> or
<varname>RuntimeKeepFree=</varname> is
violated when systemd-journald is
started, the value will be raised to
percentage that is actually free. This
means that if there was enough
free space before and journal files were
created, and subsequently something
else causes the file system to fill
up, journald will stop using more
space, but it will not be removing
existing files to go reduce footprint
either.</para>
<para>The first pair defaults to 10% and the second to 15% of
the size of the respective file system. If the file system is
nearly full and either <varname>SystemKeepFree=</varname> or
<varname>RuntimeKeepFree=</varname> is violated when
systemd-journald is started, the value will be raised to
percentage that is actually free. This means that if there was
enough free space before and journal files were created, and
subsequently something else causes the file system to fill up,
journald will stop using more space, but it will not be
removing existing files to go reduce footprint either.</para>
<para><varname>SystemMaxFileSize=</varname>
and
<varname>RuntimeMaxFileSize=</varname>
control how large individual journal
files may grow at maximum. This
influences the granularity in which
disk space is made available through
rotation, i.e. deletion of historic
data. Defaults to one eighth of the
values configured with
<varname>SystemMaxUse=</varname> and
<varname>RuntimeMaxUse=</varname>, so
that usually seven rotated journal
files are kept as history. Specify
values in bytes or use K, M, G, T, P,
E as units for the specified sizes
(equal to 1024, 1024²,... bytes).
Note that size limits are enforced
synchronously when journal files are
extended, and no explicit rotation
step triggered by time is
needed.</para></listitem>
</varlistentry>
<para><varname>SystemMaxFileSize=</varname>
and
<varname>RuntimeMaxFileSize=</varname>
control how large individual journal
files may grow at maximum. This
influences the granularity in which
disk space is made available through
rotation, i.e. deletion of historic
data. Defaults to one eighth of the
values configured with
<varname>SystemMaxUse=</varname> and
<varname>RuntimeMaxUse=</varname>, so
that usually seven rotated journal
files are kept as history. Specify
values in bytes or use K, M, G, T, P,
E as units for the specified sizes
(equal to 1024, 1024²,... bytes).
Note that size limits are enforced
synchronously when journal files are
extended, and no explicit rotation
step triggered by time is
needed.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>MaxFileSec=</varname></term>
<varlistentry>
<term><varname>MaxFileSec=</varname></term>
<listitem><para>The maximum time to
store entries in a single journal
file before rotating to the next
one. Normally, time-based rotation
should not be required as size-based
rotation with options such as
<varname>SystemMaxFileSize=</varname>
should be sufficient to ensure that
journal files do not grow without
bounds. However, to ensure that not
too much data is lost at once when old
journal files are deleted, it might
make sense to change this value from
the default of one month. Set to 0 to
turn off this feature. This setting
takes time values which may be
suffixed with the units
<literal>year</literal>,
<literal>month</literal>,
<literal>week</literal>, <literal>day</literal>,
<literal>h</literal> or <literal>m</literal>
to override the default time unit of
seconds.</para></listitem>
</varlistentry>
<listitem><para>The maximum time to store entries in a single
journal file before rotating to the next one. Normally,
time-based rotation should not be required as size-based
rotation with options such as
<varname>SystemMaxFileSize=</varname> should be sufficient to
ensure that journal files do not grow without bounds. However,
to ensure that not too much data is lost at once when old
journal files are deleted, it might make sense to change this
value from the default of one month. Set to 0 to turn off this
feature. This setting takes time values which may be suffixed
with the units <literal>year</literal>,
<literal>month</literal>, <literal>week</literal>,
<literal>day</literal>, <literal>h</literal> or
<literal>m</literal> to override the default time unit of
seconds.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>MaxRetentionSec=</varname></term>
<varlistentry>
<term><varname>MaxRetentionSec=</varname></term>
<listitem><para>The maximum time to
store journal entries. This
controls whether journal files
containing entries older then the
specified time span are
deleted. Normally, time-based deletion
of old journal files should not be
required as size-based deletion with
options such as
<varname>SystemMaxUse=</varname>
should be sufficient to ensure that
journal files do not grow without
bounds. However, to enforce data
retention policies, it might make sense
to change this value from the
default of 0 (which turns off this
feature). This setting also takes
time values which may be suffixed with
the units <literal>year</literal>,
<literal>month</literal>,
<literal>week</literal>, <literal>day</literal>,
<literal>h</literal> or <literal> m</literal>
to override the default time unit of
seconds.</para></listitem>
</varlistentry>
<listitem><para>The maximum time to store journal entries.
This controls whether journal files containing entries older
then the specified time span are deleted. Normally, time-based
deletion of old journal files should not be required as
size-based deletion with options such as
<varname>SystemMaxUse=</varname> should be sufficient to
ensure that journal files do not grow without bounds. However,
to enforce data retention policies, it might make sense to
change this value from the default of 0 (which turns off this
feature). This setting also takes time values which may be
suffixed with the units <literal>year</literal>,
<literal>month</literal>, <literal>week</literal>,
<literal>day</literal>, <literal>h</literal> or <literal>
m</literal> to override the default time unit of
seconds.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SyncIntervalSec=</varname></term>
<varlistentry>
<term><varname>SyncIntervalSec=</varname></term>
<listitem><para>The timeout before
synchronizing journal files to
disk. After syncing, journal files are
placed in the OFFLINE state. Note that
syncing is unconditionally done
immediately after a log message of
priority CRIT, ALERT or EMERG has been
logged. This setting hence applies
only to messages of the levels ERR,
WARNING, NOTICE, INFO, DEBUG. The
default timeout is 5 minutes.
</para></listitem>
</varlistentry>
<listitem><para>The timeout before synchronizing journal files
to disk. After syncing, journal files are placed in the
OFFLINE state. Note that syncing is unconditionally done
immediately after a log message of priority CRIT, ALERT or
EMERG has been logged. This setting hence applies only to
messages of the levels ERR, WARNING, NOTICE, INFO, DEBUG. The
default timeout is 5 minutes. </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ForwardToSyslog=</varname></term>
<term><varname>ForwardToKMsg=</varname></term>
<term><varname>ForwardToConsole=</varname></term>
<term><varname>ForwardToWall=</varname></term>
<varlistentry>
<term><varname>ForwardToSyslog=</varname></term>
<term><varname>ForwardToKMsg=</varname></term>
<term><varname>ForwardToConsole=</varname></term>
<term><varname>ForwardToWall=</varname></term>
<listitem><para>Control whether log
messages received by the journal
daemon shall be forwarded to a
traditional syslog daemon, to the
kernel log buffer (kmsg), to the
system console, or sent as wall
messages to all logged-in users. These
options take boolean arguments. If
forwarding to syslog is enabled but no
syslog daemon is running, the
respective option has no effect. By
default, only forwarding wall is
enabled. These settings may be
overridden at boot time with the
kernel command line options
<literal>systemd.journald.forward_to_syslog=</literal>,
<literal>systemd.journald.forward_to_kmsg=</literal>,
<literal>systemd.journald.forward_to_console=</literal>
and
<literal>systemd.journald.forward_to_wall=</literal>.
When forwarding to the console, the
TTY to log to can be changed with
<varname>TTYPath=</varname>, described
below.</para></listitem>
</varlistentry>
<listitem><para>Control whether log messages received by the
journal daemon shall be forwarded to a traditional syslog
daemon, to the kernel log buffer (kmsg), to the system
console, or sent as wall messages to all logged-in users.
These options take boolean arguments. If forwarding to syslog
is enabled but no syslog daemon is running, the respective
option has no effect. By default, only forwarding wall is
enabled. These settings may be overridden at boot time with
the kernel command line options
<literal>systemd.journald.forward_to_syslog=</literal>,
<literal>systemd.journald.forward_to_kmsg=</literal>,
<literal>systemd.journald.forward_to_console=</literal> and
<literal>systemd.journald.forward_to_wall=</literal>. When
forwarding to the console, the TTY to log to can be changed
with <varname>TTYPath=</varname>, described
below.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>MaxLevelStore=</varname></term>
<term><varname>MaxLevelSyslog=</varname></term>
<term><varname>MaxLevelKMsg=</varname></term>
<term><varname>MaxLevelConsole=</varname></term>
<term><varname>MaxLevelWall=</varname></term>
<varlistentry>
<term><varname>MaxLevelStore=</varname></term>
<term><varname>MaxLevelSyslog=</varname></term>
<term><varname>MaxLevelKMsg=</varname></term>
<term><varname>MaxLevelConsole=</varname></term>
<term><varname>MaxLevelWall=</varname></term>
<listitem><para>Controls the maximum
log level of messages that are stored
on disk, forwarded to syslog, kmsg,
the console or wall (if that is
enabled, see above). As argument,
takes one of
<literal>emerg</literal>,
<literal>alert</literal>,
<literal>crit</literal>,
<literal>err</literal>,
<literal>warning</literal>,
<literal>notice</literal>,
<literal>info</literal>,
<literal>debug</literal> or integer
values in the range of 0..7 (corresponding
to the same levels). Messages equal or below
the log level specified are
stored/forwarded, messages above are
dropped. Defaults to
<literal>debug</literal> for
<varname>MaxLevelStore=</varname> and
<varname>MaxLevelSyslog=</varname>, to
ensure that the all messages are
written to disk and forwarded to
syslog. Defaults to
<literal>notice</literal> for
<varname>MaxLevelKMsg=</varname>,
<literal>info</literal> for
<varname>MaxLevelConsole=</varname> and
<literal>emerg</literal> for
<varname>MaxLevelWall=</varname>.</para></listitem>
</varlistentry>
<listitem><para>Controls the maximum log level of messages
that are stored on disk, forwarded to syslog, kmsg, the
console or wall (if that is enabled, see above). As argument,
takes one of
<literal>emerg</literal>,
<literal>alert</literal>,
<literal>crit</literal>,
<literal>err</literal>,
<literal>warning</literal>,
<literal>notice</literal>,
<literal>info</literal>,
<literal>debug</literal>,
or integer values in the range of 0..7 (corresponding to the
same levels). Messages equal or below the log level specified
are stored/forwarded, messages above are dropped. Defaults to
<literal>debug</literal> for <varname>MaxLevelStore=</varname>
and <varname>MaxLevelSyslog=</varname>, to ensure that the all
messages are written to disk and forwarded to syslog. Defaults
to
<literal>notice</literal> for <varname>MaxLevelKMsg=</varname>,
<literal>info</literal> for <varname>MaxLevelConsole=</varname>,
and <literal>emerg</literal> for
<varname>MaxLevelWall=</varname>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>TTYPath=</varname></term>
<varlistentry>
<term><varname>TTYPath=</varname></term>
<listitem><para>Change the console TTY
to use if
<varname>ForwardToConsole=yes</varname>
is used. Defaults to
<filename>/dev/console</filename>.</para></listitem>
</varlistentry>
<listitem><para>Change the console TTY to use if
<varname>ForwardToConsole=yes</varname> is used. Defaults to
<filename>/dev/console</filename>.</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,375 +23,349 @@
<refentry id="kernel-command-line">
<refentryinfo>
<title>kernel-command-line</title>
<productname>systemd</productname>
<refentryinfo>
<title>kernel-command-line</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>kernel-command-line</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>kernel-command-line</refentrytitle>
<manvolnum>7</manvolnum>
</refmeta>
<refnamediv>
<refname>kernel-command-line</refname>
<refpurpose>Kernel command line parameters</refpurpose>
</refnamediv>
<refnamediv>
<refname>kernel-command-line</refname>
<refpurpose>Kernel command line parameters</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/proc/cmdline</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/proc/cmdline</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The kernel, the initial RAM disk (initrd) and
basic userspace functionality may be configured at boot via
kernel command line arguments.</para>
<para>The kernel, the initial RAM disk (initrd) and
basic userspace functionality may be configured at boot via
kernel command line arguments.</para>
<para>For command line parameters understood by the
kernel, please see <ulink
url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
and
<citerefentry project='man-pages'><refentrytitle>bootparam</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>For command line parameters understood by the kernel, please
see <ulink
url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
and
<citerefentry project='man-pages'><refentrytitle>bootparam</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>For command line parameters understood by the
initial RAM disk, please see
<citerefentry project='die-net'><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
or the documentation of the specific initrd
implementation of your installation.</para>
</refsect1>
<para>For command line parameters understood by the initial RAM
disk, please see
<citerefentry project='die-net'><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
or the documentation of the specific initrd implementation of your
installation.</para>
</refsect1>
<refsect1>
<title>Core OS Command Line Arguments</title>
<refsect1>
<title>Core OS Command Line Arguments</title>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.unit=</varname></term>
<term><varname>rd.systemd.unit=</varname></term>
<term><varname>systemd.dump_core=</varname></term>
<term><varname>systemd.crash_shell=</varname></term>
<term><varname>systemd.crash_chvt=</varname></term>
<term><varname>systemd.confirm_spawn=</varname></term>
<term><varname>systemd.show_status=</varname></term>
<term><varname>systemd.log_target=</varname></term>
<term><varname>systemd.log_level=</varname></term>
<term><varname>systemd.log_color=</varname></term>
<term><varname>systemd.log_location=</varname></term>
<term><varname>systemd.default_standard_output=</varname></term>
<term><varname>systemd.default_standard_error=</varname></term>
<term><varname>systemd.setenv=</varname></term>
<listitem>
<para>Parameters understood by
the system and service manager
to control system behavior. For details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.unit=</varname></term>
<term><varname>rd.systemd.unit=</varname></term>
<term><varname>systemd.dump_core=</varname></term>
<term><varname>systemd.crash_shell=</varname></term>
<term><varname>systemd.crash_chvt=</varname></term>
<term><varname>systemd.confirm_spawn=</varname></term>
<term><varname>systemd.show_status=</varname></term>
<term><varname>systemd.log_target=</varname></term>
<term><varname>systemd.log_level=</varname></term>
<term><varname>systemd.log_color=</varname></term>
<term><varname>systemd.log_location=</varname></term>
<term><varname>systemd.default_standard_output=</varname></term>
<term><varname>systemd.default_standard_error=</varname></term>
<term><varname>systemd.setenv=</varname></term>
<listitem>
<para>Parameters understood by the system and service
manager to control system behavior. For details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.mask=</varname></term>
<term><varname>systemd.wants=</varname></term>
<term><varname>systemd.debug-shell</varname></term>
<listitem>
<para>Additional parameters
understood by
<citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
to mask or start specific
units at boot, or invoke a
debug shell on tty9.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.mask=</varname></term>
<term><varname>systemd.wants=</varname></term>
<term><varname>systemd.debug-shell</varname></term>
<listitem>
<para>Additional parameters understood by
<citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
to mask or start specific units at boot, or invoke a debug
shell on tty9.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.restore_state=</varname></term>
<listitem>
<para>This parameter is understood by
several system tools to control
whether or not they should restore
system state from the previous boot.
For details, see
<citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.restore_state=</varname></term>
<listitem>
<para>This parameter is understood by several system tools
to control whether or not they should restore system state
from the previous boot. For details, see
<citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>quiet</varname></term>
<listitem>
<para>Parameter understood by
both the kernel and the system
and service manager to control
console log verbosity. For
details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>quiet</varname></term>
<listitem>
<para>Parameter understood by both the kernel and the system
and service manager to control console log verbosity. For
details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>debug</varname></term>
<listitem>
<para>Parameter understood by
both the kernel and the system
and service manager to control
console log verbosity. For
details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>debug</varname></term>
<listitem>
<para>Parameter understood by both the kernel and the system
and service manager to control console log verbosity. For
details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>-b</varname></term>
<term><varname>emergency</varname></term>
<term><varname>rescue</varname></term>
<term><varname>single</varname></term>
<term><varname>s</varname></term>
<term><varname>S</varname></term>
<term><varname>1</varname></term>
<term><varname>2</varname></term>
<term><varname>3</varname></term>
<term><varname>4</varname></term>
<term><varname>5</varname></term>
<listitem>
<para>Parameters understood by
the system and service
manager, as compatibility
options. For details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>-b</varname></term>
<term><varname>emergency</varname></term>
<term><varname>rescue</varname></term>
<term><varname>single</varname></term>
<term><varname>s</varname></term>
<term><varname>S</varname></term>
<term><varname>1</varname></term>
<term><varname>2</varname></term>
<term><varname>3</varname></term>
<term><varname>4</varname></term>
<term><varname>5</varname></term>
<listitem>
<para>Parameters understood by the system and service
manager, as compatibility options. For details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>locale.LANG=</varname></term>
<term><varname>locale.LANGUAGE=</varname></term>
<term><varname>locale.LC_CTYPE=</varname></term>
<term><varname>locale.LC_NUMERIC=</varname></term>
<term><varname>locale.LC_TIME=</varname></term>
<term><varname>locale.LC_COLLATE=</varname></term>
<term><varname>locale.LC_MONETARY=</varname></term>
<term><varname>locale.LC_MESSAGES=</varname></term>
<term><varname>locale.LC_PAPER=</varname></term>
<term><varname>locale.LC_NAME=</varname></term>
<term><varname>locale.LC_ADDRESS=</varname></term>
<term><varname>locale.LC_TELEPHONE=</varname></term>
<term><varname>locale.LC_MEASUREMENT=</varname></term>
<term><varname>locale.LC_IDENTIFICATION=</varname></term>
<listitem>
<para>Parameters understood by
the system and service manager
to control locale and language
settings. For details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>locale.LANG=</varname></term>
<term><varname>locale.LANGUAGE=</varname></term>
<term><varname>locale.LC_CTYPE=</varname></term>
<term><varname>locale.LC_NUMERIC=</varname></term>
<term><varname>locale.LC_TIME=</varname></term>
<term><varname>locale.LC_COLLATE=</varname></term>
<term><varname>locale.LC_MONETARY=</varname></term>
<term><varname>locale.LC_MESSAGES=</varname></term>
<term><varname>locale.LC_PAPER=</varname></term>
<term><varname>locale.LC_NAME=</varname></term>
<term><varname>locale.LC_ADDRESS=</varname></term>
<term><varname>locale.LC_TELEPHONE=</varname></term>
<term><varname>locale.LC_MEASUREMENT=</varname></term>
<term><varname>locale.LC_IDENTIFICATION=</varname></term>
<listitem>
<para>Parameters understood by the system and service
manager to control locale and language settings. For
details, see
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>fsck.mode=</varname></term>
<term><varname>fsck.repair=</varname></term>
<varlistentry>
<term><varname>fsck.mode=</varname></term>
<term><varname>fsck.repair=</varname></term>
<listitem>
<para>Parameters understood by
the file system checker
services. For details, see
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Parameters understood by the file system checker
services. For details, see
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>quotacheck.mode=</varname></term>
<varlistentry>
<term><varname>quotacheck.mode=</varname></term>
<listitem>
<para>Parameter understood by
the file quota checker
service. For details, see
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Parameter understood by the file quota checker
service. For details, see
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.journald.forward_to_syslog=</varname></term>
<term><varname>systemd.journald.forward_to_kmsg=</varname></term>
<term><varname>systemd.journald.forward_to_console=</varname></term>
<term><varname>systemd.journald.forward_to_wall=</varname></term>
<varlistentry>
<term><varname>systemd.journald.forward_to_syslog=</varname></term>
<term><varname>systemd.journald.forward_to_kmsg=</varname></term>
<term><varname>systemd.journald.forward_to_console=</varname></term>
<term><varname>systemd.journald.forward_to_wall=</varname></term>
<listitem>
<para>Parameters understood by
the journal service. For
details, see
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Parameters understood by the journal service. For
details, see
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>vconsole.keymap=</varname></term>
<term><varname>vconsole.keymap.toggle=</varname></term>
<term><varname>vconsole.font=</varname></term>
<term><varname>vconsole.font.map=</varname></term>
<term><varname>vconsole.font.unimap=</varname></term>
<varlistentry>
<term><varname>vconsole.keymap=</varname></term>
<term><varname>vconsole.keymap.toggle=</varname></term>
<term><varname>vconsole.font=</varname></term>
<term><varname>vconsole.font.map=</varname></term>
<term><varname>vconsole.font.unimap=</varname></term>
<listitem>
<para>Parameters understood by
the virtual console setup logic. For
details, see
<citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Parameters understood by the virtual console setup
logic. For details, see
<citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>udev.log-priority=</varname></term>
<term><varname>rd.udev.log-priority=</varname></term>
<term><varname>udev.children-max=</varname></term>
<term><varname>rd.udev.children-max=</varname></term>
<term><varname>udev.exec-delay=</varname></term>
<term><varname>rd.udev.exec-delay=</varname></term>
<term><varname>udev.event-timeout=</varname></term>
<term><varname>rd.udev.event-timeout=</varname></term>
<term><varname>net.ifnames=</varname></term>
<varlistentry>
<term><varname>udev.log-priority=</varname></term>
<term><varname>rd.udev.log-priority=</varname></term>
<term><varname>udev.children-max=</varname></term>
<term><varname>rd.udev.children-max=</varname></term>
<term><varname>udev.exec-delay=</varname></term>
<term><varname>rd.udev.exec-delay=</varname></term>
<term><varname>udev.event-timeout=</varname></term>
<term><varname>rd.udev.event-timeout=</varname></term>
<term><varname>net.ifnames=</varname></term>
<listitem>
<para>Parameters understood by
the device event managing daemon. For
details, see
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Parameters understood by the device event managing
daemon. For details, see
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>plymouth.enable=</varname></term>
<varlistentry>
<term><varname>plymouth.enable=</varname></term>
<listitem>
<para>May be used to disable
the Plymouth boot splash. For
details, see
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>May be used to disable the Plymouth boot splash. For
details, see
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>luks=</varname></term>
<term><varname>rd.luks=</varname></term>
<term><varname>luks.crypttab=</varname></term>
<term><varname>rd.luks.crypttab=</varname></term>
<term><varname>luks.name=</varname></term>
<term><varname>rd.luks.name=</varname></term>
<term><varname>luks.uuid=</varname></term>
<term><varname>rd.luks.uuid=</varname></term>
<term><varname>luks.options=</varname></term>
<term><varname>rd.luks.options=</varname></term>
<term><varname>luks.key=</varname></term>
<term><varname>rd.luks.key=</varname></term>
<varlistentry>
<term><varname>luks=</varname></term>
<term><varname>rd.luks=</varname></term>
<term><varname>luks.crypttab=</varname></term>
<term><varname>rd.luks.crypttab=</varname></term>
<term><varname>luks.name=</varname></term>
<term><varname>rd.luks.name=</varname></term>
<term><varname>luks.uuid=</varname></term>
<term><varname>rd.luks.uuid=</varname></term>
<term><varname>luks.options=</varname></term>
<term><varname>rd.luks.options=</varname></term>
<term><varname>luks.key=</varname></term>
<term><varname>rd.luks.key=</varname></term>
<listitem>
<para>Configures the LUKS
full-disk encryption logic at
boot. For details, see
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Configures the LUKS full-disk encryption logic at
boot. For details, see
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>fstab=</varname></term>
<term><varname>rd.fstab=</varname></term>
<varlistentry>
<term><varname>fstab=</varname></term>
<term><varname>rd.fstab=</varname></term>
<listitem>
<para>Configures the
<filename>/etc/fstab</filename>
logic at boot. For details, see
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Configures the <filename>/etc/fstab</filename> logic
at boot. For details, see
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>root=</varname></term>
<term><varname>rootfstype=</varname></term>
<term><varname>rootfsflags=</varname></term>
<term><varname>ro</varname></term>
<term><varname>rw</varname></term>
<varlistentry>
<term><varname>root=</varname></term>
<term><varname>rootfstype=</varname></term>
<term><varname>rootfsflags=</varname></term>
<term><varname>ro</varname></term>
<term><varname>rw</varname></term>
<listitem>
<para>Configures the root file
system and its file system
type and mount options, as
well as whether it shall be
mounted read-only or
read-writable initially. For
details, see
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Configures the root file system and its file system
type and mount options, as well as whether it shall be
mounted read-only or read-writable initially. For details,
see
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>systemd.gpt_auto=</varname></term>
<term><varname>rd.systemd.gpt_auto=</varname></term>
<varlistentry>
<term><varname>systemd.gpt_auto=</varname></term>
<term><varname>rd.systemd.gpt_auto=</varname></term>
<listitem>
<para>Configures whether GPT
based partition auto-discovery
shall be attempted. For
details, see
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Configures whether GPT based partition auto-discovery
shall be attempted. For details, see
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>modules-load=</varname></term>
<term><varname>rd.modules-load=</varname></term>
<varlistentry>
<term><varname>modules-load=</varname></term>
<term><varname>rd.modules-load=</varname></term>
<listitem>
<para>Load a specific kernel
module early at boot. For
details, see
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Load a specific kernel module early at boot. For
details, see
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>resume=</varname></term>
<varlistentry>
<term><varname>resume=</varname></term>
<listitem>
<para>Enables resume from hibernation
using the specified device.
All <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>-like
paths are supported. For details, see
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
</variablelist>
<listitem>
<para>Enables resume from hibernation using the specified
device. All
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>-like
paths are supported. For details, see
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>bootparam</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>bootparam</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>dracut.cmdline</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-debug-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fsck@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-vconsole-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-backlight@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-rfkill@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,136 +23,131 @@
-->
<refentry id="locale.conf">
<refentryinfo>
<title>locale.conf</title>
<productname>systemd</productname>
<refentryinfo>
<title>locale.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>locale.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>locale.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>locale.conf</refname>
<refpurpose>Configuration file for locale settings</refpurpose>
</refnamediv>
<refnamediv>
<refname>locale.conf</refname>
<refpurpose>Configuration file for locale settings</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/locale.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/locale.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/locale.conf</filename> file
configures system-wide locale settings. It is read at
early-boot by
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
<para>The <filename>/etc/locale.conf</filename> file configures
system-wide locale settings. It is read at early-boot by
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
<para>The basic file format of
<filename>locale.conf</filename> is a
newline-separated list of environment-like
shell-compatible variable assignments. It is possible
to source the configuration from shell scripts,
however, beyond mere variable assignments, no shell
features are supported, allowing applications to read
the file without implementing a shell compatible
execution engine.</para>
<para>The basic file format of <filename>locale.conf</filename> is
a newline-separated list of environment-like shell-compatible
variable assignments. It is possible to source the configuration
from shell scripts, however, beyond mere variable assignments, no
shell features are supported, allowing applications to read the
file without implementing a shell compatible execution
engine.</para>
<para>Note that the kernel command line options
<varname>locale.LANG=</varname>,
<varname>locale.LANGUAGE=</varname>,
<varname>locale.LC_CTYPE=</varname>,
<varname>locale.LC_NUMERIC=</varname>,
<varname>locale.LC_TIME=</varname>,
<varname>locale.LC_COLLATE=</varname>,
<varname>locale.LC_MONETARY=</varname>,
<varname>locale.LC_MESSAGES=</varname>,
<varname>locale.LC_PAPER=</varname>,
<varname>locale.LC_NAME=</varname>,
<varname>locale.LC_ADDRESS=</varname>,
<varname>locale.LC_TELEPHONE=</varname>,
<varname>locale.LC_MEASUREMENT=</varname>,
<varname>locale.LC_IDENTIFICATION=</varname> may be
used to override the locale settings at boot.</para>
<para>Note that the kernel command line options
<varname>locale.LANG=</varname>,
<varname>locale.LANGUAGE=</varname>,
<varname>locale.LC_CTYPE=</varname>,
<varname>locale.LC_NUMERIC=</varname>,
<varname>locale.LC_TIME=</varname>,
<varname>locale.LC_COLLATE=</varname>,
<varname>locale.LC_MONETARY=</varname>,
<varname>locale.LC_MESSAGES=</varname>,
<varname>locale.LC_PAPER=</varname>,
<varname>locale.LC_NAME=</varname>,
<varname>locale.LC_ADDRESS=</varname>,
<varname>locale.LC_TELEPHONE=</varname>,
<varname>locale.LC_MEASUREMENT=</varname>,
<varname>locale.LC_IDENTIFICATION=</varname> may be
used to override the locale settings at boot.</para>
<para>The locale settings configured in
<filename>/etc/locale.conf</filename> are system-wide
and are inherited by every service or user, unless
overridden or unset by individual programs or
individual users.</para>
<para>The locale settings configured in
<filename>/etc/locale.conf</filename> are system-wide and are
inherited by every service or user, unless overridden or unset by
individual programs or individual users.</para>
<para>Depending on the operating system, other
configuration files might be checked for locale
configuration as well, however only as
fallback.</para>
<para>Depending on the operating system, other configuration files
might be checked for locale configuration as well, however only as
fallback.</para>
<para><citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
may be used to alter the settings in this file during
runtime from the command line. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize them on mounted (but not booted) system
images.</para>
</refsect1>
<para><citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
may be used to alter the settings in this file during runtime from
the command line. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize them on mounted (but not booted) system
images.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following locale settings may be set using
<filename>/etc/locale.conf</filename>:
<varname>LANG=</varname>,
<varname>LANGUAGE=</varname>,
<varname>LC_CTYPE=</varname>,
<varname>LC_NUMERIC=</varname>,
<varname>LC_TIME=</varname>,
<varname>LC_COLLATE=</varname>,
<varname>LC_MONETARY=</varname>,
<varname>LC_MESSAGES=</varname>,
<varname>LC_PAPER=</varname>,
<varname>LC_NAME=</varname>,
<varname>LC_ADDRESS=</varname>,
<varname>LC_TELEPHONE=</varname>,
<varname>LC_MEASUREMENT=</varname>,
<varname>LC_IDENTIFICATION=</varname>. Note that
<varname>LC_ALL</varname> may not be configured in
this file. For details about the meaning and semantics
of these settings, refer to
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
</refsect1>
<para>The following locale settings may be set using
<filename>/etc/locale.conf</filename>:
<varname>LANG=</varname>,
<varname>LANGUAGE=</varname>,
<varname>LC_CTYPE=</varname>,
<varname>LC_NUMERIC=</varname>,
<varname>LC_TIME=</varname>,
<varname>LC_COLLATE=</varname>,
<varname>LC_MONETARY=</varname>,
<varname>LC_MESSAGES=</varname>,
<varname>LC_PAPER=</varname>,
<varname>LC_NAME=</varname>,
<varname>LC_ADDRESS=</varname>,
<varname>LC_TELEPHONE=</varname>,
<varname>LC_MEASUREMENT=</varname>,
<varname>LC_IDENTIFICATION=</varname>.
Note that <varname>LC_ALL</varname> may not be configured in this
file. For details about the meaning and semantics of these
settings, refer to
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<example>
<title>German locale with English messages</title>
<example>
<title>German locale with English messages</title>
<para><filename>/etc/locale.conf</filename>:</para>
<para><filename>/etc/locale.conf</filename>:</para>
<programlisting>LANG=de_DE.UTF-8
<programlisting>LANG=de_DE.UTF-8
LC_MESSAGES=en_US.UTF-8</programlisting>
</example>
</example>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,227 +22,200 @@
-->
<refentry id="localectl" conditional='ENABLE_LOCALED'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>localectl</title>
<productname>systemd</productname>
<refentryinfo>
<title>localectl</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>localectl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>localectl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>localectl</refname>
<refpurpose>Control the system locale and keyboard layout settings</refpurpose>
</refnamediv>
<refnamediv>
<refname>localectl</refname>
<refpurpose>Control the system locale and keyboard layout settings</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>localectl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>localectl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>localectl</command> may be used to
query and change the system locale and keyboard layout
settings.</para>
<para><command>localectl</command> may be used to query and change
the system locale and keyboard layout settings.</para>
<para>The system locale controls the language settings
of system services and of the UI before the user logs
in, such as the display manager, as well as the
default for users after login.</para>
<para>The system locale controls the language settings of system
services and of the UI before the user logs in, such as the
display manager, as well as the default for users after
login.</para>
<para>The keyboard settings control the keyboard
layout used on the text console and of the graphical
UI before the user logs in, such as the display
manager, as well as the default for users after
login.</para>
<para>The keyboard settings control the keyboard layout used on
the text console and of the graphical UI before the user logs in,
such as the display manager, as well as the default for users
after login.</para>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the system locale for mounted (but not
booted) system images.</para>
</refsect1>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the system locale for mounted (but not booted)
system images.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<listitem><para>Do not query the user
for authentication for privileged
operations.</para></listitem>
</varlistentry>
<listitem><para>Do not query the user for authentication for
privileged operations.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-convert</option></term>
<varlistentry>
<term><option>--no-convert</option></term>
<listitem><para>If
<command>set-keymap</command> or
<command>set-x11-keymap</command> is
invoked and this option is passed, then
the keymap will not be converted from
the console to X11, or X11 to console,
respectively.</para></listitem>
</varlistentry>
<listitem><para>If <command>set-keymap</command> or
<command>set-x11-keymap</command> is invoked and this option
is passed, then the keymap will not be converted from the
console to X11, or X11 to console,
respectively.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
<para>The following commands are understood:</para>
<para>The following commands are understood:</para>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<variablelist>
<varlistentry>
<term><command>status</command></term>
<listitem><para>Show current settings
of the system locale and keyboard
mapping.</para></listitem>
</varlistentry>
<listitem><para>Show current settings of the system locale and
keyboard mapping.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-locale LOCALE...</command></term>
<varlistentry>
<term><command>set-locale LOCALE...</command></term>
<listitem><para>Set the system
locale. This takes one or more
assignments such as "LANG=de_DE.utf8",
"LC_MESSAGES=en_GB.utf8", and so
on. See
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details on the available settings
and their meanings. Use
<command>list-locales</command> for a
list of available locales (see below).
</para></listitem>
</varlistentry>
<listitem><para>Set the system locale. This takes one or more
assignments such as "LANG=de_DE.utf8",
"LC_MESSAGES=en_GB.utf8", and so on. See
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details on the available settings and their meanings. Use
<command>list-locales</command> for a list of available
locales (see below). </para></listitem>
</varlistentry>
<varlistentry>
<term><command>list-locales</command></term>
<varlistentry>
<term><command>list-locales</command></term>
<listitem><para>List available locales
useful for configuration with
<command>set-locale</command>.</para></listitem>
</varlistentry>
<listitem><para>List available locales useful for
configuration with
<command>set-locale</command>.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-keymap MAP [TOGGLEMAP]</command></term>
<varlistentry>
<term><command>set-keymap MAP [TOGGLEMAP]</command></term>
<listitem><para>Set the system
keyboard mapping for the console and
X11. This takes a mapping name (such
as "de" or "us"), and possibly a
second one to define a toggle keyboard
mapping. Unless
<option>--no-convert</option> is
passed, the selected setting is also
applied as the default system keyboard
mapping of X11, after converting it to
the closest matching X11 keyboard
mapping. Use
<command>list-keymaps</command> for a
list of available keyboard mappings
(see below).</para></listitem>
</varlistentry>
<listitem><para>Set the system keyboard mapping for the
console and X11. This takes a mapping name (such as "de" or
"us"), and possibly a second one to define a toggle keyboard
mapping. Unless <option>--no-convert</option> is passed, the
selected setting is also applied as the default system
keyboard mapping of X11, after converting it to the closest
matching X11 keyboard mapping. Use
<command>list-keymaps</command> for a list of available
keyboard mappings (see below).</para></listitem>
</varlistentry>
<varlistentry>
<term><command>list-keymaps</command></term>
<varlistentry>
<term><command>list-keymaps</command></term>
<listitem><para>List available
keyboard mappings for the console,
useful for configuration with
<command>set-keymap</command>.</para></listitem>
</varlistentry>
<listitem><para>List available keyboard mappings for the
console, useful for configuration with
<command>set-keymap</command>.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]]</command></term>
<varlistentry>
<term><command>set-x11-keymap LAYOUT [MODEL [VARIANT [OPTIONS]]]</command></term>
<listitem><para>Set the system default
keyboard mapping for X11 and the
virtual console. This takes a keyboard
mapping name (such as
<literal>de</literal> or
<literal>us</literal>), and possibly a
model, variant, and options, see
<citerefentry><refentrytitle>kbd</refentrytitle><manvolnum>4</manvolnum></citerefentry>
for details. Unless
<option>--no-convert</option> is
passed, the selected setting is also
applied as the system console keyboard
mapping, after converting it to the
closest matching console keyboard
mapping.</para></listitem>
</varlistentry>
<listitem><para>Set the system default keyboard mapping for
X11 and the virtual console. This takes a keyboard mapping
name (such as <literal>de</literal> or <literal>us</literal>),
and possibly a model, variant, and options, see
<citerefentry><refentrytitle>kbd</refentrytitle><manvolnum>4</manvolnum></citerefentry>
for details. Unless <option>--no-convert</option> is passed,
the selected setting is also applied as the system console
keyboard mapping, after converting it to the closest matching
console keyboard mapping.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>list-x11-keymap-models</command></term>
<term><command>list-x11-keymap-layouts</command></term>
<term><command>list-x11-keymap-variants [LAYOUT]</command></term>
<term><command>list-x11-keymap-options</command></term>
<varlistentry>
<term><command>list-x11-keymap-models</command></term>
<term><command>list-x11-keymap-layouts</command></term>
<term><command>list-x11-keymap-variants [LAYOUT]</command></term>
<term><command>list-x11-keymap-options</command></term>
<listitem><para>List available X11
keymap models, layouts, variants and
options, useful for configuration with
<command>set-keymap</command>. The
command
<command>list-x11-keymap-variants</command>
optionally takes a layout parameter to
limit the output to the variants
suitable for the specific
layout.</para></listitem>
</varlistentry>
</variablelist>
<listitem><para>List available X11 keymap models, layouts,
variants and options, useful for configuration with
<command>set-keymap</command>. The command
<command>list-x11-keymap-variants</command> optionally takes a
layout parameter to limit the output to the variants suitable
for the specific layout.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<xi:include href="less-variables.xml" />
<xi:include href="less-variables.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kbd</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<ulink url="http://www.x.org/releases/current/doc/xorg-docs/input/XKB-Config.html">
The XKB Configuration Guide
</ulink>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kbd</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<ulink url="http://www.x.org/releases/current/doc/xorg-docs/input/XKB-Config.html">
The XKB Configuration Guide
</ulink>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-localed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -24,84 +24,81 @@
-->
<refentry id="localtime">
<refentryinfo>
<title>localtime</title>
<productname>systemd</productname>
<refentryinfo>
<title>localtime</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
<author>
<contrib>Developer</contrib>
<firstname>Shawn</firstname>
<surname>Landden</surname>
<email>shawnlandden@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
<author>
<contrib>Developer</contrib>
<firstname>Shawn</firstname>
<surname>Landden</surname>
<email>shawnlandden@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>localtime</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>localtime</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>localtime</refname>
<refpurpose>Local timezone configuration file</refpurpose>
</refnamediv>
<refnamediv>
<refname>localtime</refname>
<refpurpose>Local timezone configuration file</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/localtime</filename> -&gt; <filename>../usr/share/zoneinfo/…</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/localtime</filename> -&gt; <filename>../usr/share/zoneinfo/…</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/localtime</filename> file
configures the system-wide timezone of the local
system that is used by applications for presentation
to the user. It should be an absolute or relative
symbolic link pointing to
<filename>/usr/share/zoneinfo/</filename>, followed by
a timezone identifier such as
<literal>Europe/Berlin</literal> or
<literal>Etc/UTC</literal>. The resulting link should
lead to the corresponding binary
<citerefentry project='man-pages'><refentrytitle>tzfile</refentrytitle><manvolnum>5</manvolnum></citerefentry>
timezone data for the configured timezone.</para>
<para>The <filename>/etc/localtime</filename> file configures the
system-wide timezone of the local system that is used by
applications for presentation to the user. It should be an
absolute or relative symbolic link pointing to
<filename>/usr/share/zoneinfo/</filename>, followed by a timezone
identifier such as <literal>Europe/Berlin</literal> or
<literal>Etc/UTC</literal>. The resulting link should lead to the
corresponding binary
<citerefentry project='man-pages'><refentrytitle>tzfile</refentrytitle><manvolnum>5</manvolnum></citerefentry>
timezone data for the configured timezone.</para>
<para>Because the timezone identifier is extracted from
the symlink target name of
<filename>/etc/localtime</filename>, this file may not
be a normal file or hardlink.</para>
<para>Because the timezone identifier is extracted from the
symlink target name of <filename>/etc/localtime</filename>, this
file may not be a normal file or hardlink.</para>
<para>The timezone may be overridden for individual
programs by using the TZ environment variable. See
<citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>The timezone may be overridden for individual programs by
using the <varname>$TZ</varname> environment variable. See
<citerefentry project='man-pages'><refentrytitle>environ</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
<para>You may use
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the settings of this file from the command
line during runtime. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the time zone on mounted (but not
booted) system images.</para>
</refsect1>
<para>You may use
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the settings of this file from the command line during
runtime. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the time zone on mounted (but not booted) system
images.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>tzset</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>tzset</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-timedated.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,485 +22,394 @@
-->
<refentry id="loginctl" conditional='ENABLE_LOGIND'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>loginctl</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>loginctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>loginctl</refname>
<refpurpose>Control the systemd login manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>loginctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
<arg choice="opt" rep="repeat">NAME</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>loginctl</command> may be used to
introspect and control the state of the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
login manager <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<listitem><para>Do not query the user
for authentication for privileged
operations.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--property=</option></term>
<listitem><para>When showing
session/user/seat properties, limit
display to certain properties as
specified as argument. If not
specified, all set properties are
shown. The argument should be a
property name, such as
<literal>Sessions</literal>. If
specified more than once, all
properties with the specified names
are shown.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a</option></term>
<term><option>--all</option></term>
<listitem><para>When showing
session/user/seat properties, show all
properties regardless of whether they are
set or not.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<term><option>--full</option></term>
<listitem><para>Do not ellipsize
process tree entries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--kill-who=</option></term>
<listitem><para>When used with
<command>kill-session</command>,
choose which processes to kill. Must
be one of <option>leader</option>, or
<option>all</option> to select whether
to kill only the leader process of the
session or all processes of the
session. If omitted, defaults to
<option>all</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<term><option>--signal=</option></term>
<listitem><para>When used with
<command>kill-session</command> or
<command>kill-user</command>, choose
which signal to send to selected
processes. Must be one of the well
known signal specifiers, such as
<constant>SIGTERM</constant>,
<constant>SIGINT</constant> or
<constant>SIGSTOP</constant>. If
omitted, defaults to
<constant>SIGTERM</constant>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<term><option>--lines=</option></term>
<listitem><para>When used with
<command>user-status</command> and
<command>session-status</command>,
controls the number of journal lines
to show, counting from the most recent
ones. Takes a positive integer
argument. Defaults to 10.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output=</option></term>
<listitem><para>When used with
<command>user-status</command> and
<command>session-status</command>,
controls the formatting of the journal
entries that are shown. For the
available choices, see
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
Defaults to
<literal>short</literal>.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
<refsect1>
<title>Commands</title>
<para>The following commands are understood:</para>
<refsect2><title>Session Commands</title><variablelist>
<varlistentry>
<term><command>list-sessions</command></term>
<listitem><para>List current sessions.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>session-status</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Show terse runtime
status information about one or more
sessions, followed by the most recent
log data from the journal. Takes one
or more session identifiers as
parameters. If no session identifiers
are passed the status of the caller's
session is shown. This function is
intended to generate human-readable
output. If you are looking for
computer-parsable output, use
<command>show-session</command>
instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Show properties of one
or more sessions or the manager
itself. If no argument is specified,
properties of the manager will be
shown. If a session ID is specified,
properties of the session are shown. By
default, empty properties are
suppressed. Use <option>--all</option>
to show those too. To select specific
properties to show, use
<option>--property=</option>. This
command is intended to be used
whenever computer-parsable output is
required. Use
<command>session-status</command> if
you are looking for formatted
human-readable
output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>activate</command> <optional><replaceable>ID</replaceable></optional></term>
<listitem><para>Activate a
session. This brings a session into
the foreground, if another session is
currently in the foreground on the
respective seat. Takes a session
identifier as argument. If no argument
is specified the session of the caller
is put into
foreground.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>lock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<term><command>unlock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Activates/deactivates
the screen lock on one or more
sessions, if the session supports
it. Takes one or more session
identifiers as arguments. If no
argument is specified the session of
the caller is locked/unlocked.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>lock-sessions</command></term>
<term><command>unlock-sessions</command></term>
<listitem><para>Activates/deactivates
the screen lock on all current
sessions supporting it.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-session</command> <replaceable>ID</replaceable>...</term>
<listitem><para>Terminates a session.
This kills all processes of the
session and deallocates all resources
attached to the session.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-session</command> <replaceable>ID</replaceable>...</term>
<listitem><para>Send a signal to one
or more processes of the session. Use
<option>--kill-who=</option> to select
which process to kill. Use
<option>--signal=</option> to select
the signal to send.</para></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2><title>User Commands</title><variablelist>
<varlistentry>
<term><command>list-users</command></term>
<listitem><para>List currently logged
in users.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>user-status</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Show terse runtime
status information about one or more
logged in users, followed by the most
recent log data from the
journal. Takes one or more user names
or numeric user IDs as parameters. If
no parameters are passed the status of
the caller's user is shown. This
function is intended to generate
human-readable output. If you are
looking for computer-parsable output,
use <command>show-user</command>
instead. Users may be specified by
their usernames or numeric user IDs.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-user</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Show properties of one
or more users or the manager
itself. If no argument is specified,
properties of the manager will be
shown. If a user is specified,
properties of the user are shown. By
default, empty properties are
suppressed. Use <option>--all</option>
to show those too. To select specific
properties to show, use
<option>--property=</option>. This
command is intended to be used
whenever computer-parsable output is
required. Use
<command>user-status</command> if
you are looking for formatted
human-readable
output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>enable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
<term><command>disable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Enable/disable user
lingering for one or more users. If
enabled for a specific user, a user
manager is spawned for the user at
boot and kept around after
logouts. This allows users who are not
logged in to run long-running
services. Takes one or more user names
or numeric UIDs as argument. If no
argument is specified enables/disables
lingering for the user of the session
of the caller.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-user</command> <replaceable>USER</replaceable>...</term>
<listitem><para>Terminates all
sessions of a user. This kills all
processes of all sessions of the user
and deallocates all runtime resources
attached to the user.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-user</command> <replaceable>USER</replaceable>...</term>
<listitem><para>Send a signal to all
processes of a user. Use
<option>--signal=</option> to select
the signal to send.</para></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2><title>Seat Commands</title><variablelist>
<varlistentry>
<term><command>list-seats</command></term>
<listitem><para>List currently
available seats on the local
system.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>seat-status</command> <optional><replaceable>NAME</replaceable>...</optional></term>
<listitem><para>Show terse runtime
status information about one or more
seats. Takes one or more seat names as
parameters. If no seat names are
passed the status of the caller's
session's seat is shown. This function
is intended to generate human-readable
output. If you are looking for
computer-parsable output, use
<command>show-seat</command>
instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-seat</command> <optional><replaceable>NAME</replaceable>...</optional></term>
<listitem><para>Show properties of one
or more seats or the manager
itself. If no argument is specified,
properties of the manager will be
shown. If a seat is specified,
properties of the seat are shown. By
default, empty properties are
suppressed. Use <option>--all</option>
to show those too. To select specific
properties to show, use
<option>--property=</option>. This
command is intended to be used
whenever computer-parsable output is
required. Use
<command>seat-status</command> if you
are looking for formatted
human-readable
output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable>...</term>
<listitem><para>Persistently attach
one or more devices to a seat. The
devices should be specified via device
paths in the <filename>/sys</filename>
file system. To create a new seat,
attach at least one graphics card to a
previously unused seat name. Seat
names may consist only of a-z, A-Z,
0-9, <literal>-</literal> and
<literal>_</literal> and must be
prefixed with <literal>seat</literal>.
To drop assignment of a device to a
specific seat, just reassign it to a
different seat, or use
<command>flush-devices</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>flush-devices</command></term>
<listitem><para>Removes all device
assignments previously created with
<command>attach</command>. After this
call, only automatically generated
seats will remain, and all seat
hardware is assigned to
them.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-seat</command> <replaceable>NAME</replaceable>...</term>
<listitem><para>Terminates all
sessions on a seat. This kills all
processes of all sessions on the seat
and deallocates all runtime resources
attached to them.</para></listitem>
</varlistentry>
</variablelist></refsect2>
</refsect1>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<xi:include href="less-variables.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>loginctl</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>loginctl</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>loginctl</refname>
<refpurpose>Control the systemd login manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>loginctl</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="req">COMMAND</arg>
<arg choice="opt" rep="repeat">NAME</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><command>loginctl</command> may be used to introspect and
control the state of the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
login manager
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--no-ask-password</option></term>
<listitem><para>Do not query the user for authentication for
privileged operations.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--property=</option></term>
<listitem><para>When showing session/user/seat properties,
limit display to certain properties as specified as argument.
If not specified, all set properties are shown. The argument
should be a property name, such as
<literal>Sessions</literal>. If specified more than once, all
properties with the specified names are
shown.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-a</option></term>
<term><option>--all</option></term>
<listitem><para>When showing session/user/seat properties,
show all properties regardless of whether they are set or
not.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<term><option>--full</option></term>
<listitem><para>Do not ellipsize process tree entries.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--kill-who=</option></term>
<listitem><para>When used with
<command>kill-session</command>, choose which processes to
kill. Must be one of <option>leader</option>, or
<option>all</option> to select whether to kill only the leader
process of the session or all processes of the session. If
omitted, defaults to <option>all</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<term><option>--signal=</option></term>
<listitem><para>When used with <command>kill-session</command>
or <command>kill-user</command>, choose which signal to send
to selected processes. Must be one of the well known signal
specifiers, such as <constant>SIGTERM</constant>,
<constant>SIGINT</constant> or <constant>SIGSTOP</constant>.
If omitted, defaults to
<constant>SIGTERM</constant>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<term><option>--lines=</option></term>
<listitem><para>When used with <command>user-status</command>
and <command>session-status</command>, controls the number of
journal lines to show, counting from the most recent ones.
Takes a positive integer argument. Defaults to 10.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output=</option></term>
<listitem><para>When used with <command>user-status</command>
and <command>session-status</command>, controls the formatting
of the journal entries that are shown. For the available
choices, see
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
Defaults to <literal>short</literal>.</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
<xi:include href="standard-options.xml" xpointer="no-legend" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
<refsect1>
<title>Commands</title>
<para>The following commands are understood:</para>
<refsect2><title>Session Commands</title><variablelist>
<varlistentry>
<term><command>list-sessions</command></term>
<listitem><para>List current sessions.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>session-status</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Show terse runtime status information about
one or more sessions, followed by the most recent log data
from the journal. Takes one or more session identifiers as
parameters. If no session identifiers are passed the status of
the caller's session is shown. This function is intended to
generate human-readable output. If you are looking for
computer-parsable output, use <command>show-session</command>
instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Show properties of one or more sessions or the
manager itself. If no argument is specified, properties of the
manager will be shown. If a session ID is specified,
properties of the session are shown. By default, empty
properties are suppressed. Use <option>--all</option> to show
those too. To select specific properties to show, use
<option>--property=</option>. This command is intended to be
used whenever computer-parsable output is required. Use
<command>session-status</command> if you are looking for
formatted human-readable output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>activate</command> <optional><replaceable>ID</replaceable></optional></term>
<listitem><para>Activate a session. This brings a session into
the foreground, if another session is currently in the
foreground on the respective seat. Takes a session identifier
as argument. If no argument is specified the session of the
caller is put into foreground.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>lock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<term><command>unlock-session</command> <optional><replaceable>ID</replaceable>...</optional></term>
<listitem><para>Activates/deactivates the screen lock on one
or more sessions, if the session supports it. Takes one or
more session identifiers as arguments. If no argument is
specified the session of the caller is locked/unlocked.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>lock-sessions</command></term>
<term><command>unlock-sessions</command></term>
<listitem><para>Activates/deactivates the screen lock on all
current sessions supporting it. </para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-session</command> <replaceable>ID</replaceable>...</term>
<listitem><para>Terminates a session. This kills all processes
of the session and deallocates all resources attached to the
session. </para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-session</command> <replaceable>ID</replaceable>...</term>
<listitem><para>Send a signal to one or more processes of the
session. Use <option>--kill-who=</option> to select which
process to kill. Use <option>--signal=</option> to select the
signal to send.</para></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2><title>User Commands</title><variablelist>
<varlistentry>
<term><command>list-users</command></term>
<listitem><para>List currently logged in users.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>user-status</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Show terse runtime status information about
one or more logged in users, followed by the most recent log
data from the journal. Takes one or more user names or numeric
user IDs as parameters. If no parameters are passed the status
of the caller's user is shown. This function is intended to
generate human-readable output. If you are looking for
computer-parsable output, use <command>show-user</command>
instead. Users may be specified by their usernames or numeric
user IDs. </para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-user</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Show properties of one or more users or the
manager itself. If no argument is specified, properties of the
manager will be shown. If a user is specified, properties of
the user are shown. By default, empty properties are
suppressed. Use <option>--all</option> to show those too. To
select specific properties to show, use
<option>--property=</option>. This command is intended to be
used whenever computer-parsable output is required. Use
<command>user-status</command> if you are looking for
formatted human-readable output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>enable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
<term><command>disable-linger</command> <optional><replaceable>USER</replaceable>...</optional></term>
<listitem><para>Enable/disable user lingering for one or more
users. If enabled for a specific user, a user manager is
spawned for the user at boot and kept around after logouts.
This allows users who are not logged in to run long-running
services. Takes one or more user names or numeric UIDs as
argument. If no argument is specified enables/disables
lingering for the user of the session of the caller.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-user</command> <replaceable>USER</replaceable>...</term>
<listitem><para>Terminates all sessions of a user. This kills
all processes of all sessions of the user and deallocates all
runtime resources attached to the user.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>kill-user</command> <replaceable>USER</replaceable>...</term>
<listitem><para>Send a signal to all processes of a user. Use
<option>--signal=</option> to select the signal to send.
</para></listitem>
</varlistentry>
</variablelist></refsect2>
<refsect2><title>Seat Commands</title><variablelist>
<varlistentry>
<term><command>list-seats</command></term>
<listitem><para>List currently available seats on the local
system.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>seat-status</command> <optional><replaceable>NAME</replaceable>...</optional></term>
<listitem><para>Show terse runtime status information about
one or more seats. Takes one or more seat names as parameters.
If no seat names are passed the status of the caller's
session's seat is shown. This function is intended to generate
human-readable output. If you are looking for
computer-parsable output, use <command>show-seat</command>
instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>show-seat</command> <optional><replaceable>NAME</replaceable>...</optional></term>
<listitem><para>Show properties of one or more seats or the
manager itself. If no argument is specified, properties of the
manager will be shown. If a seat is specified, properties of
the seat are shown. By default, empty properties are
suppressed. Use <option>--all</option> to show those too. To
select specific properties to show, use
<option>--property=</option>. This command is intended to be
used whenever computer-parsable output is required. Use
<command>seat-status</command> if you are looking for
formatted human-readable output.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>attach</command> <replaceable>NAME</replaceable> <replaceable>DEVICE</replaceable>...</term>
<listitem><para>Persistently attach one or more devices to a
seat. The devices should be specified via device paths in the
<filename>/sys</filename> file system. To create a new seat,
attach at least one graphics card to a previously unused seat
name. Seat names may consist only of a-z, A-Z, 0-9,
<literal>-</literal> and <literal>_</literal> and must be
prefixed with <literal>seat</literal>. To drop assignment of a
device to a specific seat, just reassign it to a different
seat, or use <command>flush-devices</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><command>flush-devices</command></term>
<listitem><para>Removes all device assignments previously
created with <command>attach</command>. After this call, only
automatically generated seats will remain, and all seat
hardware is assigned to them.</para></listitem>
</varlistentry>
<varlistentry>
<term><command>terminate-seat</command> <replaceable>NAME</replaceable>...</term>
<listitem><para>Terminates all sessions on a seat. This kills
all processes of all sessions on the seat and deallocates all
runtime resources attached to them.</para></listitem>
</varlistentry>
</variablelist></refsect2>
</refsect1>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<xi:include href="less-variables.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,344 +23,272 @@
-->
<refentry id="logind.conf" conditional='ENABLE_LOGIND'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>logind.conf</title>
<productname>systemd</productname>
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>logind.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>logind.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>logind.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>logind.conf</refname>
<refname>logind.conf.d</refname>
<refpurpose>Login manager configuration files</refpurpose>
</refnamediv>
<refnamediv>
<refname>logind.conf</refname>
<refname>logind.conf.d</refname>
<refpurpose>Login manager configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/logind.conf</filename></para>
<para><filename>/etc/systemd/logind.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/logind.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/logind.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/systemd/logind.conf</filename></para>
<para><filename>/etc/systemd/logind.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/logind.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/logind.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>These files configure various parameters of the systemd login manager, <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<para>These files configure various parameters of the systemd login manager, <citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>All options are configured in the
<literal>[Login]</literal> section:</para>
<para>All options are configured in the
<literal>[Login]</literal> section:</para>
<variablelist>
<variablelist>
<varlistentry>
<term><varname>NAutoVTs=</varname></term>
<varlistentry>
<term><varname>NAutoVTs=</varname></term>
<listitem><para>Takes a positive
integer. Configures how many virtual
terminals (VTs) to allocate by default
that, when switched to and are
previously unused,
<literal>autovt</literal> services are
automatically spawned on. These
services are instantiated from the
template unit
<filename>autovt@.service</filename>
for the respective VT TTY name,
for example, <filename>autovt@tty4.service</filename>. By
default,
<filename>autovt@.service</filename>
is linked to
<filename>getty@.service</filename>.
In other words, login prompts are started
dynamically as the user switches to
unused virtual terminals. Hence, this
parameter controls how many login
<literal>gettys</literal> are
available on the VTs. If a VT is
already used by some other subsystem
(for example, a graphical login), this
kind of activation will not be
attempted. Note that the VT configured
in <varname>ReserveVT=</varname> is
always subject to this kind of
activation, even if it is not one of
the VTs configured with the
<varname>NAutoVTs=</varname>
directive. Defaults to 6. When set to
0, automatic spawning of
<literal>autovt</literal> services is
disabled.</para></listitem>
</varlistentry>
<listitem><para>Takes a positive integer. Configures how many
virtual terminals (VTs) to allocate by default that, when
switched to and are previously unused,
<literal>autovt</literal> services are automatically spawned
on. These services are instantiated from the template unit
<filename>autovt@.service</filename> for the respective VT TTY
name, for example, <filename>autovt@tty4.service</filename>.
By default, <filename>autovt@.service</filename> is linked to
<filename>getty@.service</filename>. In other words, login
prompts are started dynamically as the user switches to unused
virtual terminals. Hence, this parameter controls how many
login <literal>gettys</literal> are available on the VTs. If a
VT is already used by some other subsystem (for example, a
graphical login), this kind of activation will not be
attempted. Note that the VT configured in
<varname>ReserveVT=</varname> is always subject to this kind
of activation, even if it is not one of the VTs configured
with the <varname>NAutoVTs=</varname> directive. Defaults to
6. When set to 0, automatic spawning of
<literal>autovt</literal> services is
disabled.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ReserveVT=</varname></term>
<varlistentry>
<term><varname>ReserveVT=</varname></term>
<listitem><para>Takes a positive
integer. Identifies one
virtual terminal that shall
unconditionally be reserved for
<filename>autovt@.service</filename>
activation (see above). The VT
selected with this option will be
marked busy unconditionally, so that no
other subsystem will allocate it. This
functionality is useful to ensure that,
regardless of how many VTs are allocated
by other subsystems, one login
<literal>getty</literal> is always
available. Defaults to 6 (in other
words, there will always be a
<literal>getty</literal> available on
Alt-F6.). When set to 0, VT
reservation is
disabled.</para></listitem>
</varlistentry>
<listitem><para>Takes a positive integer. Identifies one
virtual terminal that shall unconditionally be reserved for
<filename>autovt@.service</filename> activation (see above).
The VT selected with this option will be marked busy
unconditionally, so that no other subsystem will allocate it.
This functionality is useful to ensure that, regardless of how
many VTs are allocated by other subsystems, one login
<literal>getty</literal> is always available. Defaults to 6
(in other words, there will always be a
<literal>getty</literal> available on Alt-F6.). When set to 0,
VT reservation is disabled.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>KillUserProcesses=</varname></term>
<varlistentry>
<term><varname>KillUserProcesses=</varname></term>
<listitem><para>Takes a boolean
argument. Configures whether the
processes of a user should be killed
when the user completely logs out (i.e. after
the user's last session ended). Defaults to
<literal>no</literal>.</para>
<listitem><para>Takes a boolean argument. Configures whether
the processes of a user should be killed when the user
completely logs out (i.e. after the user's last session
ended). Defaults to <literal>no</literal>.</para>
<para>Note that setting
<varname>KillUserProcesses=1</varname>
will break tools like
<citerefentry><refentrytitle>screen</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
<para>Note that setting <varname>KillUserProcesses=1</varname>
will break tools like
<citerefentry><refentrytitle>screen</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>KillOnlyUsers=</varname></term>
<term><varname>KillExcludeUsers=</varname></term>
<varlistentry>
<term><varname>KillOnlyUsers=</varname></term>
<term><varname>KillExcludeUsers=</varname></term>
<listitem><para>These settings take
space-separated lists of usernames
that influence the effect of
<varname>KillUserProcesses=</varname>. If
not empty, only processes of users
listed in
<varname>KillOnlyUsers=</varname> will
be killed when they log out
entirely. Processes of users listed in
<varname>KillExcludeUsers=</varname>
are excluded from being
killed. <varname>KillExcludeUsers=</varname>
defaults to <literal>root</literal>
and takes precedence over
<varname>KillOnlyUsers=</varname>,
which defaults to the empty list.</para></listitem>
</varlistentry>
<listitem><para>These settings take space-separated lists of
usernames that influence the effect of
<varname>KillUserProcesses=</varname>. If not empty, only
processes of users listed in <varname>KillOnlyUsers=</varname>
will be killed when they log out entirely. Processes of users
listed in <varname>KillExcludeUsers=</varname> are excluded
from being killed. <varname>KillExcludeUsers=</varname>
defaults to <literal>root</literal> and takes precedence over
<varname>KillOnlyUsers=</varname>, which defaults to the empty
list.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>IdleAction=</varname></term>
<varlistentry>
<term><varname>IdleAction=</varname></term>
<listitem><para>Configures the action
to take when the system is idle. Takes
one of <literal>ignore</literal>,
<literal>poweroff</literal>,
<literal>reboot</literal>,
<literal>halt</literal>,
<literal>kexec</literal>,
<literal>suspend</literal>,
<literal>hibernate</literal>,
<literal>hybrid-sleep</literal>, and
<literal>lock</literal>. Defaults to
<literal>ignore</literal>.</para>
<listitem><para>Configures the action to take when the system
is idle. Takes one of
<literal>ignore</literal>,
<literal>poweroff</literal>,
<literal>reboot</literal>,
<literal>halt</literal>,
<literal>kexec</literal>,
<literal>suspend</literal>,
<literal>hibernate</literal>,
<literal>hybrid-sleep</literal>, and
<literal>lock</literal>.
Defaults to <literal>ignore</literal>.</para>
<para>Note that this requires that
user sessions correctly report the
idle status to the system. The system
will execute the action after all
sessions report that they are idle,
no idle inhibitor lock is active,
and subsequently, the time configured
with <varname>IdleActionSec=</varname>
(see below) has expired.</para>
</listitem>
</varlistentry>
<para>Note that this requires that user sessions correctly
report the idle status to the system. The system will execute
the action after all sessions report that they are idle, no
idle inhibitor lock is active, and subsequently, the time
configured with <varname>IdleActionSec=</varname> (see below)
has expired.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>IdleActionSec=</varname></term>
<varlistentry>
<term><varname>IdleActionSec=</varname></term>
<listitem><para>Configures the delay
after which the action configured in
<varname>IdleAction=</varname> (see
above) is taken after the system is
idle.</para></listitem>
</varlistentry>
<listitem><para>Configures the delay after which the action
configured in <varname>IdleAction=</varname> (see above) is
taken after the system is idle.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>InhibitDelayMaxSec=</varname></term>
<varlistentry>
<term><varname>InhibitDelayMaxSec=</varname></term>
<listitem><para>Specifies the maximum
time a system shutdown or sleep
request is delayed due to an inhibitor
lock of type <literal>delay</literal>
being active before the inhibitor is
ignored and the operation executes
anyway. Defaults to
5.</para></listitem>
</varlistentry>
<listitem><para>Specifies the maximum time a system shutdown
or sleep request is delayed due to an inhibitor lock of type
<literal>delay</literal> being active before the inhibitor is
ignored and the operation executes anyway. Defaults to
5.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>HandlePowerKey=</varname></term>
<term><varname>HandleSuspendKey=</varname></term>
<term><varname>HandleHibernateKey=</varname></term>
<term><varname>HandleLidSwitch=</varname></term>
<term><varname>HandleLidSwitchDocked=</varname></term>
<varlistentry>
<term><varname>HandlePowerKey=</varname></term>
<term><varname>HandleSuspendKey=</varname></term>
<term><varname>HandleHibernateKey=</varname></term>
<term><varname>HandleLidSwitch=</varname></term>
<term><varname>HandleLidSwitchDocked=</varname></term>
<listitem><para>Controls whether
logind shall handle the system power
and sleep keys and the lid switch to
trigger actions such as system
power-off or suspend. Can be one of
<literal>ignore</literal>,
<literal>poweroff</literal>,
<literal>reboot</literal>,
<literal>halt</literal>,
<literal>kexec</literal>,
<literal>suspend</literal>,
<literal>hibernate</literal>,
<literal>hybrid-sleep</literal>, and
<literal>lock</literal>. If
<literal>ignore</literal>, logind will
never handle these keys. If
<literal>lock</literal>, all running
sessions will be screen-locked;
otherwise, the specified action will
be taken in the respective event. Only
input devices with the
<literal>power-switch</literal> udev
tag will be watched for key/lid switch
events. <varname>HandlePowerKey=</varname>
defaults to
<literal>poweroff</literal>.
<varname>HandleSuspendKey=</varname>
and
<varname>HandleLidSwitch=</varname>
default to <literal>suspend</literal>.
<varname>HandleLidSwitchDocked=</varname>
defaults to <literal>ignore</literal>.
<varname>HandleHibernateKey=</varname>
defaults to
<literal>hibernate</literal>. If the
system is inserted in a docking station,
or if more than one display is connected,
the action specified by
<varname>HandleLidSwitchDocked=</varname>
occurs; otherwise the
<varname>HandleLidSwitch=</varname>
action occurs.</para></listitem>
</varlistentry>
<listitem><para>Controls whether logind shall handle the
system power and sleep keys and the lid switch to trigger
actions such as system power-off or suspend. Can be one of
<literal>ignore</literal>,
<literal>poweroff</literal>,
<literal>reboot</literal>,
<literal>halt</literal>,
<literal>kexec</literal>,
<literal>suspend</literal>,
<literal>hibernate</literal>,
<literal>hybrid-sleep</literal>, and
<literal>lock</literal>.
If <literal>ignore</literal>, logind will never handle these
keys. If <literal>lock</literal>, all running sessions will be
screen-locked; otherwise, the specified action will be taken
in the respective event. Only input devices with the
<literal>power-switch</literal> udev tag will be watched for
key/lid switch events. <varname>HandlePowerKey=</varname>
defaults to <literal>poweroff</literal>.
<varname>HandleSuspendKey=</varname> and
<varname>HandleLidSwitch=</varname> default to
<literal>suspend</literal>.
<varname>HandleLidSwitchDocked=</varname> defaults to
<literal>ignore</literal>.
<varname>HandleHibernateKey=</varname> defaults to
<literal>hibernate</literal>. If the system is inserted in a
docking station, or if more than one display is connected, the
action specified by <varname>HandleLidSwitchDocked=</varname>
occurs; otherwise the <varname>HandleLidSwitch=</varname>
action occurs.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PowerKeyIgnoreInhibited=</varname></term>
<term><varname>SuspendKeyIgnoreInhibited=</varname></term>
<term><varname>HibernateKeyIgnoreInhibited=</varname></term>
<term><varname>LidSwitchIgnoreInhibited=</varname></term>
<varlistentry>
<term><varname>PowerKeyIgnoreInhibited=</varname></term>
<term><varname>SuspendKeyIgnoreInhibited=</varname></term>
<term><varname>HibernateKeyIgnoreInhibited=</varname></term>
<term><varname>LidSwitchIgnoreInhibited=</varname></term>
<listitem><para>Controls whether
actions triggered by the power and
sleep keys and the lid switch are
subject to inhibitor locks. These
settings take boolean arguments. If
<literal>no</literal>, the inhibitor
locks taken by applications in order
to block the requested operation are
respected. If <literal>yes</literal>,
the requested operation is executed in
any
case. <varname>PowerKeyIgnoreInhibited=</varname>,
<varname>SuspendKeyIgnoreInhibited=</varname>
and
<varname>HibernateKeyIgnoreInhibited=</varname>
default to <literal>no</literal>.
<varname>LidSwitchIgnoreInhibited=</varname>
defaults to
<literal>yes</literal>. This means
that the lid switch does not respect
suspend blockers by default, but the
power and sleep keys do.
</para></listitem>
</varlistentry>
<listitem><para>Controls whether actions triggered by the
power and sleep keys and the lid switch are subject to
inhibitor locks. These settings take boolean arguments. If
<literal>no</literal>, the inhibitor locks taken by
applications in order to block the requested operation are
respected. If <literal>yes</literal>, the requested operation
is executed in any case.
<varname>PowerKeyIgnoreInhibited=</varname>,
<varname>SuspendKeyIgnoreInhibited=</varname> and
<varname>HibernateKeyIgnoreInhibited=</varname> default to
<literal>no</literal>.
<varname>LidSwitchIgnoreInhibited=</varname> defaults to
<literal>yes</literal>. This means that the lid switch does
not respect suspend blockers by default, but the power and
sleep keys do. </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>RuntimeDirectorySize=</varname></term>
<varlistentry>
<term><varname>RuntimeDirectorySize=</varname></term>
<listitem><para>Sets the size limit on
the
<varname>$XDG_RUNTIME_DIR</varname>
runtime directory for each user who
logs in. Takes a size in bytes,
optionally suffixed with the usual K, G,
M, and T suffixes, to the base 1024
(IEC). Alternatively, a numerical
percentage suffixed by <literal>%</literal>
may be specified, which sets the size
limit relative to the amount of
physical RAM. Defaults to 10%. Note
that this size is a safety limit
only. As each runtime directory is a
tmpfs file system, it will only consume
as much memory as is needed.
</para></listitem>
</varlistentry>
<listitem><para>Sets the size limit on the
<varname>$XDG_RUNTIME_DIR</varname> runtime directory for each
user who logs in. Takes a size in bytes, optionally suffixed
with the usual K, G, M, and T suffixes, to the base 1024
(IEC). Alternatively, a numerical percentage suffixed by
<literal>%</literal> may be specified, which sets the size
limit relative to the amount of physical RAM. Defaults to 10%.
Note that this size is a safety limit only. As each runtime
directory is a tmpfs file system, it will only consume as much
memory as is needed. </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>RemoveIPC=</varname></term>
<varlistentry>
<term><varname>RemoveIPC=</varname></term>
<listitem><para>Controls whether
System V and POSIX IPC objects
belonging to the user shall be removed
when the user fully logs out. Takes a
boolean argument. If enabled, the user
may not consume IPC resources after
the last of the user's sessions
terminated. This covers System V
semaphores, shared memory and message
queues, as well as POSIX shared memory
and message queues. Note that IPC
objects of the root user are excluded
from the effect of this
setting. Defaults to
<literal>yes</literal>.</para></listitem>
</varlistentry>
<listitem><para>Controls whether System V and POSIX IPC
objects belonging to the user shall be removed when the user
fully logs out. Takes a boolean argument. If enabled, the user
may not consume IPC resources after the last of the user's
sessions terminated. This covers System V semaphores, shared
memory and message queues, as well as POSIX shared memory and
message queues. Note that IPC objects of the root user are
excluded from the effect of this setting. Defaults to
<literal>yes</literal>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,127 +23,119 @@
-->
<refentry id="machine-id">
<refentryinfo>
<title>machine-id</title>
<productname>systemd</productname>
<refentryinfo>
<title>machine-id</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>machine-id</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>machine-id</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>machine-id</refname>
<refpurpose>Local machine ID configuration file</refpurpose>
</refnamediv>
<refnamediv>
<refname>machine-id</refname>
<refpurpose>Local machine ID configuration file</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/machine-id</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/machine-id</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/machine-id</filename> file
contains the unique machine ID of the local system
that is set during installation. The machine ID is a
single newline-terminated, hexadecimal, 32-character,
lowercase machine ID string. When decoded from
hexadecimal, this corresponds with a 16-byte/128-bit
string.</para>
<para>The <filename>/etc/machine-id</filename> file contains the
unique machine ID of the local system that is set during
installation. The machine ID is a single newline-terminated,
hexadecimal, 32-character, lowercase machine ID string. When
decoded from hexadecimal, this corresponds with a 16-byte/128-bit
string.</para>
<para>The machine ID is usually generated from a
random source during system installation and stays
constant for all subsequent boots. Optionally, for
stateless systems, it is generated during runtime at
boot if it is found to be empty.</para>
<para>The machine ID is usually generated from a random source
during system installation and stays constant for all subsequent
boots. Optionally, for stateless systems, it is generated during
runtime at boot if it is found to be empty.</para>
<para>The machine ID does not change based on user
configuration or when hardware is replaced.</para>
<para>The machine ID does not change based on user configuration
or when hardware is replaced.</para>
<para>This machine ID adheres to the same format and
logic as the D-Bus machine ID.</para>
<para>This machine ID adheres to the same format and logic as the
D-Bus machine ID.</para>
<para>Programs may use this ID to identify the host
with a globally unique ID in the network, which does
not change even if the local network configuration
changes. Due to this and its greater length, it is
a more useful replacement for the
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call that POSIX specifies.</para>
<para>Programs may use this ID to identify the host with a
globally unique ID in the network, which does not change even if
the local network configuration changes. Due to this and its
greater length, it is a more useful replacement for the
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call that POSIX specifies.</para>
<para>The
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool may be used by installer tools to initialize the
machine ID at install time. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize it on mounted (but not booted) system
images.</para>
</refsect1>
<para>The
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool may be used by installer tools to initialize the machine ID
at install time. Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize it on mounted (but not booted) system images.</para>
</refsect1>
<refsect1>
<title>Relation to OSF UUIDs</title>
<refsect1>
<title>Relation to OSF UUIDs</title>
<para>Note that the machine ID historically is not an
OSF UUID as defined by <ulink
url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink>, nor a Microsoft GUID; however, starting with
systemd v30, newly generated machine IDs do
qualify as v4 UUIDs.</para>
<para>Note that the machine ID historically is not an OSF UUID as
defined by <ulink url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink>, nor a Microsoft GUID; however, starting with systemd
v30, newly generated machine IDs do qualify as v4 UUIDs.</para>
<para>In order to maintain compatibility with existing
installations, an application requiring a UUID should
decode the machine ID, and then apply the following
operations to turn it into a valid OSF v4 UUID. With
<literal>id</literal> being an unsigned character
array:</para>
<para>In order to maintain compatibility with existing
installations, an application requiring a UUID should decode the
machine ID, and then apply the following operations to turn it
into a valid OSF v4 UUID. With <literal>id</literal> being an
unsigned character array:</para>
<programlisting>/* Set UUID version to 4 --- truly random generation */
<programlisting>/* Set UUID version to 4 --- truly random generation */
id[6] = (id[6] &amp; 0x0F) | 0x40;
/* Set the UUID variant to DCE */
id[8] = (id[8] &amp; 0x3F) | 0x80;</programlisting>
<para>(This code is inspired by
<literal>generate_random_uuid()</literal> of
<filename>drivers/char/random.c</filename> from the
Linux kernel sources.)</para>
<para>(This code is inspired by
<literal>generate_random_uuid()</literal> of
<filename>drivers/char/random.c</filename> from the Linux kernel
sources.)</para>
</refsect1>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<para>The simple configuration file format of
<filename>/etc/machine-id</filename> originates in the
<filename>/var/lib/dbus/machine-id</filename> file
introduced by D-Bus. In fact, this latter file might be a
symlink to
<varname>/etc/machine-id</varname>.</para>
</refsect1>
<para>The simple configuration file format of
<filename>/etc/machine-id</filename> originates in the
<filename>/var/lib/dbus/machine-id</filename> file introduced by
D-Bus. In fact, this latter file might be a symlink to
<varname>/etc/machine-id</varname>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gethostid</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,188 +23,164 @@
-->
<refentry id="machine-info">
<refentryinfo>
<title>machine-info</title>
<productname>systemd</productname>
<refentryinfo>
<title>machine-info</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>machine-info</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>machine-info</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>machine-info</refname>
<refpurpose>Local machine information file</refpurpose>
</refnamediv>
<refnamediv>
<refname>machine-info</refname>
<refpurpose>Local machine information file</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/machine-info</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/machine-info</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/machine-info</filename> file
contains machine metadata.</para>
<para>The <filename>/etc/machine-info</filename> file contains
machine metadata.</para>
<para>The basic file format of
<filename>machine-info</filename> is a
newline-separated list of environment-like
shell-compatible variable assignments. It is possible
to source the configuration from shell scripts,
however, beyond mere variable assignments no shell
features are supported, allowing applications to read
the file without implementing a shell compatible
execution engine.</para>
<para>The basic file format of <filename>machine-info</filename>
is a newline-separated list of environment-like shell-compatible
variable assignments. It is possible to source the configuration
from shell scripts, however, beyond mere variable assignments no
shell features are supported, allowing applications to read the
file without implementing a shell compatible execution
engine.</para>
<para><filename>/etc/machine-info</filename> contains
metadata about the machine that is set by the user or
administrator.</para>
<para><filename>/etc/machine-info</filename> contains metadata
about the machine that is set by the user or administrator.</para>
<para>Depending on the operating system other
configuration files might be checked for machine
information as well, however only as fallback.</para>
<para>Depending on the operating system other configuration files
might be checked for machine information as well, however only as
fallback.</para>
<para>You may use
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the settings of this file from the command
line.</para>
</refsect1>
<para>You may use
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to change the settings of this file from the command line.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following machine metadata parameters may
be set using
<filename>/etc/machine-info</filename>:</para>
<para>The following machine metadata parameters may be set using
<filename>/etc/machine-info</filename>:</para>
<variablelist>
<variablelist>
<varlistentry>
<term><varname>PRETTY_HOSTNAME=</varname></term>
<varlistentry>
<term><varname>PRETTY_HOSTNAME=</varname></term>
<listitem><para>A pretty
human-readable UTF-8 machine identifier
string. This should contain a name
like <literal>Lennart's
Laptop</literal> which is useful to
present to the user and does not
suffer by the syntax limitations of
internet domain names. If possible, the
internet hostname as configured in
<filename>/etc/hostname</filename>
should be kept similar to this
one. Example: if this value is
<literal>Lennart's Computer</literal>
an Internet hostname of
<literal>lennarts-computer</literal>
might be a good choice. If this
parameter is not set, an application
should fall back to the Internet host
name for presentation
purposes.</para></listitem>
</varlistentry>
<listitem><para>A pretty human-readable UTF-8 machine
identifier string. This should contain a name like
<literal>Lennart's Laptop</literal> which is useful to present
to the user and does not suffer by the syntax limitations of
internet domain names. If possible, the internet hostname as
configured in <filename>/etc/hostname</filename> should be
kept similar to this one. Example: if this value is
<literal>Lennart's Computer</literal> an Internet hostname of
<literal>lennarts-computer</literal> might be a good choice.
If this parameter is not set, an application should fall back
to the Internet host name for presentation
purposes.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ICON_NAME=</varname></term>
<varlistentry>
<term><varname>ICON_NAME=</varname></term>
<listitem><para>An icon identifying
this machine according to the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming Specification</ulink>. If
this parameter is not set, an
application should fall back to
<literal>computer</literal> or a
similar icon name.</para></listitem>
</varlistentry>
<listitem><para>An icon identifying this machine according to
the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming Specification</ulink>. If this parameter is not
set, an application should fall back to
<literal>computer</literal> or a similar icon
name.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>CHASSIS=</varname></term>
<varlistentry>
<term><varname>CHASSIS=</varname></term>
<listitem><para>The chassis
type. Currently, the following chassis
types are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>, and
<literal>embedded</literal> as well as
the special chassis types
<literal>vm</literal> and
<literal>container</literal> for
virtualized systems that lack an
immediate physical chassis. Note that
many systems allow detection of the
chassis type automatically (based on
firmware information or
suchlike). This setting (if set) shall
take precedence over automatically
detected information and is useful to
override misdetected configuration or
to manually configure the chassis type
where automatic detection is not
available.</para></listitem>
</varlistentry>
<listitem><para>The chassis type. Currently, the following
chassis types are defined:
<literal>desktop</literal>,
<literal>laptop</literal>,
<literal>server</literal>,
<literal>tablet</literal>,
<literal>handset</literal>,
<literal>watch</literal>, and
<literal>embedded</literal>
as well as the special chassis types
<literal>vm</literal> and
<literal>container</literal> for
virtualized systems that lack an immediate physical chassis.
Note that many systems allow detection of the chassis type
automatically (based on firmware information or suchlike).
This setting (if set) shall take precedence over automatically
detected information and is useful to override misdetected
configuration or to manually configure the chassis type where
automatic detection is not available.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>DEPLOYMENT=</varname></term>
<varlistentry>
<term><varname>DEPLOYMENT=</varname></term>
<listitem><para>Describes the system
deployment environment. One of the
following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para></listitem>
</varlistentry>
<listitem><para>Describes the system deployment environment.
One of the following is suggested:
<literal>development</literal>,
<literal>integration</literal>,
<literal>staging</literal>,
<literal>production</literal>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LOCATION=</varname></term>
<varlistentry>
<term><varname>LOCATION=</varname></term>
<listitem><para>Describes the system
location if applicable and
known. Takes a human-friendly,
free-form string. This may be as
generic as <literal>Berlin,
Germany</literal> or as specific as
<literal>Left Rack, 2nd
Shelf</literal>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Describes the system location if applicable
and known. Takes a human-friendly, free-form string. This may
be as generic as <literal>Berlin, Germany</literal> or as
specific as <literal>Left Rack, 2nd Shelf</literal>.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<programlisting>PRETTY_HOSTNAME="Lennart's Tablet"
<programlisting>PRETTY_HOSTNAME="Lennart's Tablet"
ICON_NAME=computer-tablet
CHASSIS=tablet
DEPLOYMENT=production</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>os-release</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hostnamed.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

File diff suppressed because it is too large Load Diff

View File

@ -20,83 +20,82 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="modules-load.d" conditional='HAVE_KMOD'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>modules-load.d</title>
<productname>systemd</productname>
<refentryinfo>
<title>modules-load.d</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>modules-load.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>modules-load.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>modules-load.d</refname>
<refpurpose>Configure kernel modules to load at boot</refpurpose>
</refnamediv>
<refnamediv>
<refname>modules-load.d</refname>
<refpurpose>Configure kernel modules to load at boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/modules-load.d/*.conf</filename></para>
<para><filename>/run/modules-load.d/*.conf</filename></para>
<para><filename>/usr/lib/modules-load.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/modules-load.d/*.conf</filename></para>
<para><filename>/run/modules-load.d/*.conf</filename></para>
<para><filename>/usr/lib/modules-load.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads files from the above directories which contain
kernel modules to load during boot in a static list.
Each configuration file is named in the style of
<filename>/etc/modules-load.d/<replaceable>program</replaceable>.conf</filename>. Note
that it is usually a better idea to rely on the
automatic module loading by PCI IDs, USB IDs, DMI IDs
or similar triggers encoded in the kernel modules
themselves instead of static configuration like
this. In fact, most modern kernel modules are prepared
for automatic loading already.</para>
</refsect1>
<para><citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads files from the above directories which contain kernel
modules to load during boot in a static list. Each configuration
file is named in the style of
<filename>/etc/modules-load.d/<replaceable>program</replaceable>.conf</filename>.
Note that it is usually a better idea to rely on the automatic
module loading by PCI IDs, USB IDs, DMI IDs or similar triggers
encoded in the kernel modules themselves instead of static
configuration like this. In fact, most modern kernel modules are
prepared for automatic loading already.</para>
</refsect1>
<refsect1>
<title>Configuration Format</title>
<refsect1>
<title>Configuration Format</title>
<para>The configuration files should simply contain a
list of kernel module names to load, separated by
newlines. Empty lines and lines whose first
non-whitespace character is # or ; are ignored.</para>
</refsect1>
<para>The configuration files should simply contain a list of
kernel module names to load, separated by newlines. Empty lines
and lines whose first non-whitespace character is # or ; are
ignored.</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<refsect1>
<title>Example</title>
<example>
<title>/etc/modules-load.d/virtio-net.conf example:</title>
<refsect1>
<title>Example</title>
<example>
<title>/etc/modules-load.d/virtio-net.conf example:</title>
<programlisting># Load virtio-net.ko at boot
<programlisting># Load virtio-net.ko at boot
virtio-net</programlisting>
</example>
</refsect1>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-modules-load.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -24,140 +24,129 @@
<refentry id="nss-myhostname" conditional='HAVE_MYHOSTNAME'>
<refentryinfo>
<title>nss-myhostname</title>
<productname>systemd</productname>
<refentryinfo>
<title>nss-myhostname</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>nss-myhostname</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>nss-myhostname</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>nss-myhostname</refname>
<refname>libnss_myhostname.so.2</refname>
<refpurpose>Provide hostname resolution for the locally
configured system hostname.</refpurpose>
</refnamediv>
<refnamediv>
<refname>nss-myhostname</refname>
<refname>libnss_myhostname.so.2</refname>
<refpurpose>Provide hostname resolution for the locally
configured system hostname.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>libnss_myhostname.so.2</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>libnss_myhostname.so.2</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>nss-myhostname</command> is a plugin
for the GNU Name Service Switch (NSS) functionality of
the GNU C Library (<command>glibc</command>) primarily
providing hostname resolution for the locally
configured system hostname as returned by
<citerefentry><refentrytitle>gethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>. The
precise hostnames resolved by this module are:</para>
<para><command>nss-myhostname</command> is a plugin for the GNU
Name Service Switch (NSS) functionality of the GNU C Library
(<command>glibc</command>) primarily providing hostname resolution
for the locally configured system hostname as returned by
<citerefentry><refentrytitle>gethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
The precise hostnames resolved by this module are:</para>
<itemizedlist>
<listitem><para>The local, configured hostname
is resolved to all locally configured IP
addresses ordered by their scope, or -- if
none are configured -- the IPv4 address
127.0.0.2 (which is on the local loopback) and
the IPv6 address ::1 (which is the local
host).</para></listitem>
<itemizedlist>
<listitem><para>The local, configured hostname is resolved to
all locally configured IP addresses ordered by their scope, or
— if none are configured the IPv4 address 127.0.0.2 (which
is on the local loopback) and the IPv6 address ::1 (which is the
local host).</para></listitem>
<listitem><para>The hostname
<literal>localhost</literal> is resolved to
the IP addresses 127.0.0.1 and
::1.</para></listitem>
<listitem><para>The hostname <literal>localhost</literal> is
resolved to the IP addresses 127.0.0.1 and
::1.</para></listitem>
<listitem><para>The hostname
<literal>gateway</literal> is resolved to all
current default routing gateway addresses,
ordered by their metric. This assigns a stable
hostname to the current gateway, useful for
referencing it independently of the current
network configuration state.</para></listitem>
<listitem><para>The hostname <literal>gateway</literal> is
resolved to all current default routing gateway addresses,
ordered by their metric. This assigns a stable hostname to the
current gateway, useful for referencing it independently of the
current network configuration state.</para></listitem>
</itemizedlist>
</itemizedlist>
<para>Various software relies on an always-resolvable
local hostname. When using dynamic hostnames, this is
traditionally achieved by patching
<filename>/etc/hosts</filename> at the same time as
changing the hostname. This is problematic since it
requires a writable <filename>/etc</filename> file
system and is fragile because the file might be edited
by the administrator at the same time. With
<command>nss-myhostname</command> enabled changing
<filename>/etc/hosts</filename> is unncessary, and on
many systems the file becomes entirely optional.</para>
<para>Various software relies on an always-resolvable local
hostname. When using dynamic hostnames, this is traditionally
achieved by patching <filename>/etc/hosts</filename> at the same
time as changing the hostname. This is problematic since it
requires a writable <filename>/etc</filename> file system and is
fragile because the file might be edited by the administrator at
the same time. With <command>nss-myhostname</command> enabled
changing <filename>/etc/hosts</filename> is unncessary, and on
many systems the file becomes entirely optional.</para>
<para>To activate the NSS modules,
<literal>myhostname</literal> has to be added to the
line starting with <literal>hosts:</literal> in
<filename>/etc/nsswitch.conf</filename>.</para>
<para>To activate the NSS modules, <literal>myhostname</literal>
has to be added to the line starting with
<literal>hosts:</literal> in
<filename>/etc/nsswitch.conf</filename>.</para>
<para>It is recommended to place
<literal>myhostname</literal> last in the
<filename>nsswitch.conf</filename> line to make sure
that this mapping is only used as fallback, and any
DNS or <filename>/etc/hosts</filename> based mapping
takes precedence.</para>
</refsect1>
<para>It is recommended to place <literal>myhostname</literal>
last in the <filename>nsswitch.conf</filename> line to make sure
that this mapping is only used as fallback, and any DNS or
<filename>/etc/hosts</filename> based mapping takes
precedence.</para>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<para>Here's an example
<filename>/etc/nsswitch.conf</filename> file, that
enables <command>myhostname</command>
correctly:</para>
<para>Here's an example <filename>/etc/nsswitch.conf</filename>
file, that enables <command>myhostname</command> correctly:</para>
<programlisting>passwd: compat
group: compat
shadow: compat
<programlisting>passwd: compat
group: compat
shadow: compat
hosts: files dns mymachines <command>myhostname</command>
hosts: files dns mymachines <command>myhostname</command>
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
ethers: db files
rpc: db files
netgroup: nis</programlisting>
<para>To test, use <command>glibc</command>'s <command>getent</command> tool:</para>
<para>To test, use <command>glibc</command>'s <command>getent</command> tool:</para>
<programlisting>$ getent ahosts `hostname`
::1 STREAM omega
::1 DGRAM
::1 RAW
<programlisting>$ getent ahosts `hostname`
::1 STREAM omega
::1 DGRAM
::1 RAW
127.0.0.2 STREAM
127.0.0.2 DGRAM
127.0.0.2 RAW</programlisting>
<para>In this case the local hostname is <varname>omega</varname>.</para>
<para>In this case the local hostname is <varname>omega</varname>.</para>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>getent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-mymachines</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>getent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,94 +23,90 @@
<refentry id="nss-mymachines" conditional='ENABLE_MACHINED'>
<refentryinfo>
<title>nss-mymachines</title>
<productname>systemd</productname>
<refentryinfo>
<title>nss-mymachines</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>nss-mymachines</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>nss-mymachines</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>nss-mymachines</refname>
<refname>libnss_mymachines.so.2</refname>
<refpurpose>Provide hostname resolution for local
container instances.</refpurpose>
</refnamediv>
<refnamediv>
<refname>nss-mymachines</refname>
<refname>libnss_mymachines.so.2</refname>
<refpurpose>Provide hostname resolution for local
container instances.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>libnss_mymachines.so.2</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>libnss_mymachines.so.2</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>nss-mymachines</command> is a plugin
for the GNU Name Service Switch (NSS) functionality of
the GNU C Library (<command>glibc</command>) providing
hostname resolution for containers running locally,
that are registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. The
container names are resolved to IP addresses of the
specific container, ordered by their scope.</para>
<para><command>nss-mymachines</command> is a plugin for the GNU
Name Service Switch (NSS) functionality of the GNU C Library
(<command>glibc</command>) providing hostname resolution for
containers running locally, that are registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
The container names are resolved to IP addresses of the specific
container, ordered by their scope.</para>
<para>To activate the NSS modules,
<literal>mymachines</literal> has to be added to the
line starting with <literal>hosts:</literal> in
<filename>/etc/nsswitch.conf</filename>.</para>
<para>To activate the NSS modules, <literal>mymachines</literal>
has to be added to the line starting with
<literal>hosts:</literal> in
<filename>/etc/nsswitch.conf</filename>.</para>
<para>It is recommended to place
<literal>mymachines</literal> near the end of the
<filename>nsswitch.conf</filename> line to make sure
that this mapping is only used as fallback, and any
DNS or <filename>/etc/hosts</filename> based mapping
takes precedence.</para>
</refsect1>
<para>It is recommended to place <literal>mymachines</literal>
near the end of the <filename>nsswitch.conf</filename> line to
make sure that this mapping is only used as fallback, and any DNS
or <filename>/etc/hosts</filename> based mapping takes
precedence.</para>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<para>Here's an example
<filename>/etc/nsswitch.conf</filename> file, that
enables <command>mymachines</command>
correctly:</para>
<para>Here's an example <filename>/etc/nsswitch.conf</filename>
file, that enables <command>mymachines</command> correctly:</para>
<programlisting>passwd: compat
group: compat
shadow: compat
<programlisting>passwd: compat
group: compat
shadow: compat
hosts: files dns <command>mymachines</command> myhostname
hosts: files dns <command>mymachines</command> myhostname
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
ethers: db files
rpc: db files
netgroup: nis</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>getent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>nss-myhostname</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>nsswitch.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>getent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,359 +23,286 @@
-->
<refentry id="os-release">
<refentryinfo>
<title>os-release</title>
<productname>systemd</productname>
<refentryinfo>
<title>os-release</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>os-release</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>os-release</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>os-release</refname>
<refpurpose>Operating system identification</refpurpose>
</refnamediv>
<refnamediv>
<refname>os-release</refname>
<refpurpose>Operating system identification</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/os-release</filename></para>
<para><filename>/usr/lib/os-release</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/os-release</filename></para>
<para><filename>/usr/lib/os-release</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>The <filename>/etc/os-release</filename> and
<filename>/usr/lib/os-release</filename> files contain
operating system identification data.</para>
<para>The <filename>/etc/os-release</filename> and
<filename>/usr/lib/os-release</filename> files contain operating
system identification data.</para>
<para>The basic file format of
<filename>os-release</filename> is a newline-separated
list of environment-like shell-compatible variable
assignments. It is possible to source the
configuration from shell scripts, however, beyond mere
variable assignments, no shell features are supported
(this means variable expansion is explicitly not
supported), allowing applications to read the file
without implementing a shell compatible execution
engine. Variable assignment values must be enclosed in
double or single quotes if they include spaces,
semicolons or other special characters outside of A-Z,
a-z, 0-9. Shell special characters ("$", quotes,
backslash, backtick) must be escaped with backslashes,
following shell style. All strings should be in UTF-8
format, and non-printable characters should not be used.
It is not supported to concatenate multiple individually
quoted strings. Lines beginning with "#" shall be
ignored as comments.</para>
<para>The basic file format of <filename>os-release</filename> is
a newline-separated list of environment-like shell-compatible
variable assignments. It is possible to source the configuration
from shell scripts, however, beyond mere variable assignments, no
shell features are supported (this means variable expansion is
explicitly not supported), allowing applications to read the file
without implementing a shell compatible execution engine. Variable
assignment values must be enclosed in double or single quotes if
they include spaces, semicolons or other special characters
outside of A-Z, a-z, 0-9. Shell special characters ("$", quotes,
backslash, backtick) must be escaped with backslashes, following
shell style. All strings should be in UTF-8 format, and
non-printable characters should not be used. It is not supported
to concatenate multiple individually quoted strings. Lines
beginning with "#" shall be ignored as comments.</para>
<para>The file <filename>/etc/os-release</filename>
takes precedence over
<filename>/usr/lib/os-release</filename>. Applications
should check for the former, and exclusively use its
data if it exists, and only fall back to
<filename>/usr/lib/os-release</filename> if it is
missing. Applications should not read data from both
files at the same
time. <filename>/usr/lib/os-release</filename> is the
recommended place to store OS release information as
part of vendor trees.
<filename>/etc/os-release</filename> should be a
relative symlink to
<filename>/usr/lib/os-release</filename>,
to provide compatibility with applications only
looking at <filename>/etc</filename>. A relative
symlink instead of an absolute symlink is
necessary to avoid breaking the link in a chroot or
initrd environment such as dracut.</para>
<para>The file <filename>/etc/os-release</filename> takes
precedence over <filename>/usr/lib/os-release</filename>.
Applications should check for the former, and exclusively use its
data if it exists, and only fall back to
<filename>/usr/lib/os-release</filename> if it is missing.
Applications should not read data from both files at the same
time. <filename>/usr/lib/os-release</filename> is the recommended
place to store OS release information as part of vendor trees.
<filename>/etc/os-release</filename> should be a relative symlink
to <filename>/usr/lib/os-release</filename>, to provide
compatibility with applications only looking at
<filename>/etc</filename>. A relative symlink instead of an
absolute symlink is necessary to avoid breaking the link in a
chroot or initrd environment such as dracut.</para>
<para><filename>os-release</filename> contains data
that is defined by the operating system vendor and
should generally not be changed by the
administrator.</para>
<para><filename>os-release</filename> contains data that is
defined by the operating system vendor and should generally not be
changed by the administrator.</para>
<para>As this file only encodes names and identifiers
it should not be localized.</para>
<para>As this file only encodes names and identifiers it should
not be localized.</para>
<para>The <filename>/etc/os-release</filename> and
<filename>/usr/lib/os-release</filename> files might
be symlinks to other files, but it is important that
the file is available from earliest boot on, and hence
must be located on the root file system.</para>
<para>The <filename>/etc/os-release</filename> and
<filename>/usr/lib/os-release</filename> files might be symlinks
to other files, but it is important that the file is available
from earliest boot on, and hence must be located on the root file
system.</para>
<para>For a longer rationale for
<filename>os-release</filename> please refer to
the <ulink
url="http://0pointer.de/blog/projects/os-release">Announcement of <filename>/etc/os-release</filename></ulink>.</para>
</refsect1>
<para>For a longer rationale for <filename>os-release</filename>
please refer to the <ulink
url="http://0pointer.de/blog/projects/os-release">Announcement of
<filename>/etc/os-release</filename></ulink>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following OS identifications parameters may be set using
<filename>os-release</filename>:</para>
<para>The following OS identifications parameters may be set using
<filename>os-release</filename>:</para>
<variablelist>
<variablelist>
<varlistentry>
<term><varname>NAME=</varname></term>
<varlistentry>
<term><varname>NAME=</varname></term>
<listitem><para>A string identifying
the operating system, without a
version component, and suitable for
presentation to the user. If not set,
defaults to
<literal>NAME=Linux</literal>. Example:
<literal>NAME=Fedora</literal> or
<literal>NAME="Debian
GNU/Linux"</literal>.</para></listitem>
</varlistentry>
<listitem><para>A string identifying the operating system,
without a version component, and suitable for presentation to
the user. If not set, defaults to
<literal>NAME=Linux</literal>. Example:
<literal>NAME=Fedora</literal> or <literal>NAME="Debian
GNU/Linux"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VERSION=</varname></term>
<varlistentry>
<term><varname>VERSION=</varname></term>
<listitem><para>A string identifying
the operating system version,
excluding any OS name information,
possibly including a release code
name, and suitable for presentation to
the user. This field is
optional. Example:
<literal>VERSION=17</literal> or
<literal>VERSION="17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<listitem><para>A string identifying the operating system
version, excluding any OS name information, possibly including
a release code name, and suitable for presentation to the
user. This field is optional. Example:
<literal>VERSION=17</literal> or <literal>VERSION="17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ID=</varname></term>
<varlistentry>
<term><varname>ID=</varname></term>
<listitem><para>A lower-case string
(no spaces or other characters outside
of 0-9, a-z, ".", "_" and "-")
identifying the operating system,
excluding any version information and
suitable for processing by scripts or
usage in generated filenames. If not
set, defaults to
<literal>ID=linux</literal>. Example:
<literal>ID=fedora</literal> or
<literal>ID=debian</literal>.</para></listitem>
</varlistentry>
<listitem><para>A lower-case string (no spaces or other
characters outside of 0-9, a-z, ".", "_" and "-") identifying
the operating system, excluding any version information and
suitable for processing by scripts or usage in generated
filenames. If not set, defaults to
<literal>ID=linux</literal>. Example:
<literal>ID=fedora</literal> or
<literal>ID=debian</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ID_LIKE=</varname></term>
<varlistentry>
<term><varname>ID_LIKE=</varname></term>
<listitem><para>A space-separated list
of operating system identifiers in the
same syntax as the
<varname>ID=</varname> setting. It should
list identifiers of operating systems
that are closely related to the local
operating system in regards to
packaging and programming interfaces,
for example listing one or more
OS identifiers the local
OS is a derivative from. An
OS should generally only list other OS
identifiers it itself is a derivative
of, and not any OSes that
are derived from it, though symmetric
relationships are possible. Build
scripts and similar should check this
variable if they need to identify the
local operating system and the value
of <varname>ID=</varname> is not
recognized. Operating systems should
be listed in order of how closely the
local operating system relates to the
listed ones, starting with the
closest. This field is
optional. Example: for an operating
system with
<literal>ID=centos</literal>, an
assignment of <literal>ID_LIKE="rhel
fedora"</literal> would be
appropriate. For an operating system
with <literal>ID=ubuntu</literal>, an
assignment of
<literal>ID_LIKE=debian</literal> is
appropriate.</para></listitem>
</varlistentry>
<listitem><para>A space-separated list of operating system
identifiers in the same syntax as the <varname>ID=</varname>
setting. It should list identifiers of operating systems that
are closely related to the local operating system in regards
to packaging and programming interfaces, for example listing
one or more OS identifiers the local OS is a derivative from.
An OS should generally only list other OS identifiers it
itself is a derivative of, and not any OSes that are derived
from it, though symmetric relationships are possible. Build
scripts and similar should check this variable if they need to
identify the local operating system and the value of
<varname>ID=</varname> is not recognized. Operating systems
should be listed in order of how closely the local operating
system relates to the listed ones, starting with the closest.
This field is optional. Example: for an operating system with
<literal>ID=centos</literal>, an assignment of
<literal>ID_LIKE="rhel fedora"</literal> would be appropriate.
For an operating system with <literal>ID=ubuntu</literal>, an
assignment of <literal>ID_LIKE=debian</literal> is
appropriate.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>VERSION_ID=</varname></term>
<varlistentry>
<term><varname>VERSION_ID=</varname></term>
<listitem><para>A lower-case string
(mostly numeric, no spaces or other
characters outside of 0-9, a-z, ".",
"_" and "-") identifying the operating
system version, excluding any OS name
information or release code name, and
suitable for processing by scripts or
usage in generated filenames. This
field is optional. Example:
<literal>VERSION_ID=17</literal> or
<literal>VERSION_ID=11.04</literal>.</para></listitem>
</varlistentry>
<listitem><para>A lower-case string (mostly numeric, no spaces
or other characters outside of 0-9, a-z, ".", "_" and "-")
identifying the operating system version, excluding any OS
name information or release code name, and suitable for
processing by scripts or usage in generated filenames. This
field is optional. Example: <literal>VERSION_ID=17</literal>
or <literal>VERSION_ID=11.04</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>PRETTY_NAME=</varname></term>
<varlistentry>
<term><varname>PRETTY_NAME=</varname></term>
<listitem><para>A pretty operating
system name in a format suitable for
presentation to the user. May or may
not contain a release code name or OS
version of some kind, as suitable. If
not set, defaults to
<literal>PRETTY_NAME="Linux"</literal>. Example:
<literal>PRETTY_NAME="Fedora 17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<listitem><para>A pretty operating system name in a format
suitable for presentation to the user. May or may not contain
a release code name or OS version of some kind, as suitable.
If not set, defaults to
<literal>PRETTY_NAME="Linux"</literal>. Example:
<literal>PRETTY_NAME="Fedora 17 (Beefy
Miracle)"</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>ANSI_COLOR=</varname></term>
<varlistentry>
<term><varname>ANSI_COLOR=</varname></term>
<listitem><para>A suggested
presentation color when showing the
OS name on the console. This
should be specified as string suitable
for inclusion in the ESC [ m
ANSI/ECMA-48 escape code for setting
graphical rendition. This field is
optional. Example:
<literal>ANSI_COLOR="0;31"</literal>
for red, or
<literal>ANSI_COLOR="1;34"</literal>
for light blue.</para></listitem>
</varlistentry>
<listitem><para>A suggested presentation color when showing
the OS name on the console. This should be specified as string
suitable for inclusion in the ESC [ m ANSI/ECMA-48 escape code
for setting graphical rendition. This field is optional.
Example: <literal>ANSI_COLOR="0;31"</literal> for red, or
<literal>ANSI_COLOR="1;34"</literal> for light
blue.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>CPE_NAME=</varname></term>
<varlistentry>
<term><varname>CPE_NAME=</varname></term>
<listitem><para>A CPE name for the
operating system, following the <ulink
url="https://cpe.mitre.org/specification/">Common
Platform Enumeration
Specification</ulink> as proposed by
the MITRE Corporation. This field
is optional. Example:
<literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
</para></listitem>
</varlistentry>
<listitem><para>A CPE name for the operating system, following
the <ulink url="https://cpe.mitre.org/specification/">Common
Platform Enumeration Specification</ulink> as proposed by the
MITRE Corporation. This field is optional. Example:
<literal>CPE_NAME="cpe:/o:fedoraproject:fedora:17"</literal>
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>HOME_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
<term><varname>PRIVACY_POLICY_URL=</varname></term>
<varlistentry>
<term><varname>HOME_URL=</varname></term>
<term><varname>SUPPORT_URL=</varname></term>
<term><varname>BUG_REPORT_URL=</varname></term>
<term><varname>PRIVACY_POLICY_URL=</varname></term>
<listitem><para>Links to resources on
the Internet related the operating
system. <varname>HOME_URL=</varname>
should refer to the homepage of the
operating system, or alternatively
some homepage of the specific version
of the operating
system. <varname>SUPPORT_URL=</varname>
should refer to the main support page
for the operating system, if there is
any. This is primarily intended for
operating systems which vendors
provide support
for. <varname>BUG_REPORT_URL=</varname>
should refer to the main bug reporting
page for the operating system, if
there is any. This is primarily
intended for operating systems that
rely on community QA.
<varname>PRIVACY_POLICY_URL=</varname>
should refer to the main privacy policy
page for the operation system, if there
is any. These settings
are optional, and providing only some
of these settings is common. These
URLs are intended to be exposed in
"About this system" UIs behind links
with captions such as "About this
Operating System", "Obtain Support",
"Report a Bug", or "Privacy Policy". The
values should be in <ulink
url="https://tools.ietf.org/html/rfc3986">RFC3986
format</ulink>, and should be
<literal>http:</literal> or
<literal>https:</literal> URLs, and
possibly <literal>mailto:</literal> or
<literal>tel:</literal>. Only one URL
shall be listed in each setting. If
multiple resources need to be
referenced, it is recommended to
provide an online landing page linking
all available resources. Examples:
<literal>HOME_URL="https://fedoraproject.org/"</literal>
and
<literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal></para></listitem>
</varlistentry>
<listitem><para>Links to resources on the Internet related the
operating system. <varname>HOME_URL=</varname> should refer to
the homepage of the operating system, or alternatively some
homepage of the specific version of the operating system.
<varname>SUPPORT_URL=</varname> should refer to the main
support page for the operating system, if there is any. This
is primarily intended for operating systems which vendors
provide support for. <varname>BUG_REPORT_URL=</varname> should
refer to the main bug reporting page for the operating system,
if there is any. This is primarily intended for operating
systems that rely on community QA.
<varname>PRIVACY_POLICY_URL=</varname> should refer to the
main privacy policy page for the operation system, if there is
any. These settings are optional, and providing only some of
these settings is common. These URLs are intended to be
exposed in "About this system" UIs behind links with captions
such as "About this Operating System", "Obtain Support",
"Report a Bug", or "Privacy Policy". The values should be in
<ulink url="https://tools.ietf.org/html/rfc3986">RFC3986
format</ulink>, and should be <literal>http:</literal> or
<literal>https:</literal> URLs, and possibly
<literal>mailto:</literal> or <literal>tel:</literal>. Only
one URL shall be listed in each setting. If multiple resources
need to be referenced, it is recommended to provide an online
landing page linking all available resources. Examples:
<literal>HOME_URL="https://fedoraproject.org/"</literal> and
<literal>BUG_REPORT_URL="https://bugzilla.redhat.com/"</literal></para></listitem>
</varlistentry>
<varlistentry>
<term><varname>BUILD_ID=</varname></term>
<varlistentry>
<term><varname>BUILD_ID=</varname></term>
<listitem><para>A string uniquely
identifying the system image used as
the origin for a distribution (it is
not updated with system updates). The
field can be identical between
different VERSION_IDs as BUILD_ID is
an only a unique identifier to a
specific version. Distributions that
release each update as a new version
would only need to use VERSION_ID as
each build is already distinct based
on the VERSION_ID. This field is
optional. Example:
<literal>BUILD_ID="2013-03-20.3"</literal>
or
<literal>BUILD_ID=201303203</literal>.
<listitem><para>A string uniquely identifying the system image
used as the origin for a distribution (it is not updated with
system updates). The field can be identical between different
VERSION_IDs as BUILD_ID is an only a unique identifier to a
specific version. Distributions that release each update as a
new version would only need to use VERSION_ID as each build is
already distinct based on the VERSION_ID. This field is
optional. Example: <literal>BUILD_ID="2013-03-20.3"</literal>
or <literal>BUILD_ID=201303203</literal>.
</para></listitem>
</varlistentry>
</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
<para>If you are reading this file from C code or a
shell script to determine the OS or a specific version
of it, use the ID and VERSION_ID fields, possibly with
ID_LIKE as fallback for ID. When looking for an OS
identification string for presentation to the user use
the PRETTY_NAME field.</para>
<para>If you are reading this file from C code or a shell script
to determine the OS or a specific version of it, use the
<varname>ID</varname> and <varname>VERSION_ID</varname> fields,
possibly with <varname>ID_LIKE</varname> as fallback for
<varname>ID</varname>. When looking for an OS identification
string for presentation to the user use the
<varname>PRETTY_NAME</varname> field.</para>
<para>Note that operating system vendors may choose
not to provide version information, for example to
accommodate for rolling releases. In this case, VERSION
and VERSION_ID may be unset. Applications should not
rely on these fields to be set.</para>
<para>Note that operating system vendors may choose not to provide
version information, for example to accommodate for rolling
releases. In this case, <varname>VERSION</varname> and
<varname>VERSION_ID</varname> may be unset. Applications should
not rely on these fields to be set.</para>
<para>Operating system vendors may extend the file
format and introduce new fields. It is highly
recommended to prefix new fields with an OS specific
name in order to avoid name clashes. Applications
reading this file must ignore unknown fields. Example:
<literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal></para>
</refsect1>
<para>Operating system vendors may extend the file
format and introduce new fields. It is highly
recommended to prefix new fields with an OS specific
name in order to avoid name clashes. Applications
reading this file must ignore unknown fields. Example:
<literal>DEBIAN_BTS="debbugs://bugs.debian.org/"</literal></para>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<programlisting>NAME=Fedora
<programlisting>NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
@ -384,17 +311,17 @@ ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>lsb_release</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>lsb_release</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,292 +23,250 @@
<refentry id="pam_systemd" conditional='HAVE_PAM'>
<refentryinfo>
<title>pam_systemd</title>
<productname>systemd</productname>
<refentryinfo>
<title>pam_systemd</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>pam_systemd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>pam_systemd</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>pam_systemd</refname>
<refpurpose>Register user sessions in the systemd login manager</refpurpose>
</refnamediv>
<refnamediv>
<refname>pam_systemd</refname>
<refpurpose>Register user sessions in the systemd login manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>pam_systemd.so</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>pam_systemd.so</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>pam_systemd</command> registers user
sessions with the systemd login manager
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
and hence the systemd control group hierarchy.</para>
<para><command>pam_systemd</command> registers user sessions with
the systemd login manager
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
and hence the systemd control group hierarchy.</para>
<para>On login, this module ensures the following:</para>
<para>On login, this module ensures the following:</para>
<orderedlist>
<listitem><para>If it does not exist yet, the
user runtime directory
<filename>/run/user/$USER</filename> is
created and its ownership changed to the user
that is logging in.</para></listitem>
<orderedlist>
<listitem><para>If it does not exist yet, the user runtime
directory <filename>/run/user/$USER</filename> is created and
its ownership changed to the user that is logging
in.</para></listitem>
<listitem><para>The
<varname>$XDG_SESSION_ID</varname> environment
variable is initialized. If auditing is
available and
<command>pam_loginuid.so</command> was run before
this module (which is highly recommended), the
variable is initialized from the auditing
session id
(<filename>/proc/self/sessionid</filename>). Otherwise,
an independent session counter is
used.</para></listitem>
<listitem><para>The <varname>$XDG_SESSION_ID</varname>
environment variable is initialized. If auditing is available
and <command>pam_loginuid.so</command> was run before this
module (which is highly recommended), the variable is
initialized from the auditing session id
(<filename>/proc/self/sessionid</filename>). Otherwise, an
independent session counter is used.</para></listitem>
<listitem><para>A new systemd scope unit is
created for the session. If this is the first
concurrent session of the user, an implicit
slice below <filename>user.slice</filename> is
automatically created and the scope placed into
it. An instance of the system service
<filename>user@.service</filename>, which runs
the systemd user manager instance, is started.
</para></listitem>
</orderedlist>
<listitem><para>A new systemd scope unit is created for the
session. If this is the first concurrent session of the user, an
implicit slice below <filename>user.slice</filename> is
automatically created and the scope placed into it. An instance
of the system service <filename>user@.service</filename>, which
runs the systemd user manager instance, is started.
</para></listitem>
</orderedlist>
<para>On logout, this module ensures the following:</para>
<para>On logout, this module ensures the following:</para>
<orderedlist>
<listitem><para>If enabled in
<citerefentry><refentrytitle>logind.conf</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>, all
processes of the session are terminated. If
the last concurrent session of a user ends,
the user's systemd instance will be
terminated too, and so will the user's slice
unit.</para></listitem>
<orderedlist>
<listitem><para>If enabled in
<citerefentry><refentrytitle>logind.conf</refentrytitle>
<manvolnum>5</manvolnum></citerefentry>, all processes of the
session are terminated. If the last concurrent session of a user
ends, the user's systemd instance will be terminated too, and so
will the user's slice unit.</para></listitem>
<listitem><para>If the last concurrent session
of a user ends, the
<varname>$XDG_RUNTIME_DIR</varname> directory
and all its contents are removed,
too.</para></listitem>
</orderedlist>
<listitem><para>If the last concurrent session of a user ends,
the <varname>$XDG_RUNTIME_DIR</varname> directory and all its
contents are removed, too.</para></listitem>
</orderedlist>
<para>If the system was not booted up with systemd as
init system, this module does nothing and immediately
returns PAM_SUCCESS.</para>
<para>If the system was not booted up with systemd as init system,
this module does nothing and immediately returns
<constant>PAM_SUCCESS</constant>.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist class='pam-directives'>
<variablelist class='pam-directives'>
<varlistentry>
<term><option>class=</option></term>
<varlistentry>
<term><option>class=</option></term>
<listitem><para>Takes a string
argument which sets the session class.
The XDG_SESSION_CLASS environmental variable
takes precedence. One of
<literal>user</literal>,
<literal>greeter</literal>,
<literal>lock-screen</literal> or
<literal>background</literal>. See
<citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session class.</para></listitem>
</varlistentry>
<listitem><para>Takes a string argument which sets the session
class. The XDG_SESSION_CLASS environmental variable takes
precedence. One of
<literal>user</literal>,
<literal>greeter</literal>,
<literal>lock-screen</literal> or
<literal>background</literal>. See
<citerefentry><refentrytitle>sd_session_get_class</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session class.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>type=</option></term>
<varlistentry>
<term><option>type=</option></term>
<listitem><para>Takes a string
argument which sets the session type.
The XDG_SESSION_TYPE environmental
variable takes precedence. One of
<literal>unspecified</literal>,
<literal>tty</literal>,
<literal>x11</literal>,
<literal>wayland</literal> or
<literal>mir</literal>. See
<citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session type.</para></listitem>
</varlistentry>
<listitem><para>Takes a string argument which sets the session
type. The XDG_SESSION_TYPE environmental variable takes
precedence. One of
<literal>unspecified</literal>,
<literal>tty</literal>,
<literal>x11</literal>,
<literal>wayland</literal> or
<literal>mir</literal>. See
<citerefentry><refentrytitle>sd_session_get_type</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details about the session type.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>debug<optional>=</optional></option></term>
<varlistentry>
<term><option>debug<optional>=</optional></option></term>
<listitem><para>Takes an optional
boolean argument. If yes or without
the argument, the module will log
debugging information as it
operates.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Takes an optional
boolean argument. If yes or without
the argument, the module will log
debugging information as it
operates.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Module Types Provided</title>
<refsect1>
<title>Module Types Provided</title>
<para>Only <option>session</option> is provided.</para>
</refsect1>
<para>Only <option>session</option> is provided.</para>
</refsect1>
<refsect1>
<title>Environment</title>
<refsect1>
<title>Environment</title>
<para>The following environment variables are set for the processes of the user's session:</para>
<para>The following environment variables are set for the
processes of the user's session:</para>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$XDG_SESSION_ID</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$XDG_SESSION_ID</varname></term>
<listitem><para>A session identifier,
suitable to be used in filenames. The
string itself should be considered
opaque, although often it is just the
audit session ID as reported by
<filename>/proc/self/sessionid</filename>. Each
ID will be assigned only once during
machine uptime. It may hence be used
to uniquely label files or other
resources of this
session.</para></listitem>
</varlistentry>
<listitem><para>A session identifier, suitable to be used in
filenames. The string itself should be considered opaque,
although often it is just the audit session ID as reported by
<filename>/proc/self/sessionid</filename>. Each ID will be
assigned only once during machine uptime. It may hence be used
to uniquely label files or other resources of this
session.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$XDG_RUNTIME_DIR</varname></term>
<varlistentry>
<term><varname>$XDG_RUNTIME_DIR</varname></term>
<listitem><para>Path to a user-private
user-writable directory that is bound
to the user login time on the
machine. It is automatically created
the first time a user logs in and
removed on the user's final logout. If
a user logs in twice at the same time,
both sessions will see the same
<varname>$XDG_RUNTIME_DIR</varname>
and the same contents. If a user logs
in once, then logs out again, and logs
in again, the directory contents will
have been lost in between, but
applications should not rely on this
behavior and must be able to deal with
stale files. To store session-private
data in this directory, the user
should include the value of
<varname>$XDG_SESSION_ID</varname> in
the filename. This directory shall be
used for runtime file system objects
such as <constant>AF_UNIX</constant>
sockets, FIFOs, PID files and
similar. It is guaranteed that this
directory is local and offers the
greatest possible file system feature
set the operating system provides. For
further details see the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
Base Directory
Specification</ulink>.</para></listitem>
</varlistentry>
<listitem><para>Path to a user-private user-writable directory
that is bound to the user login time on the machine. It is
automatically created the first time a user logs in and
removed on the user's final logout. If a user logs in twice at
the same time, both sessions will see the same
<varname>$XDG_RUNTIME_DIR</varname> and the same contents. If
a user logs in once, then logs out again, and logs in again,
the directory contents will have been lost in between, but
applications should not rely on this behavior and must be able
to deal with stale files. To store session-private data in
this directory, the user should include the value of
<varname>$XDG_SESSION_ID</varname> in the filename. This
directory shall be used for runtime file system objects such
as <constant>AF_UNIX</constant> sockets, FIFOs, PID files and
similar. It is guaranteed that this directory is local and
offers the greatest possible file system feature set the
operating system provides. For further details see the <ulink
url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG
Base Directory Specification</ulink>.</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
<para>The following environment variables are read by
the module and may be used by the PAM service to pass
metadata to the module:</para>
<para>The following environment variables are read by the module
and may be used by the PAM service to pass metadata to the
module:</para>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$XDG_SESSION_TYPE</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$XDG_SESSION_TYPE</varname></term>
<listitem><para>The session type. This
may be used instead of
<option>session=</option> on the
module parameter line, and is usually
preferred.</para></listitem>
</varlistentry>
<listitem><para>The session type. This may be used instead of
<option>session=</option> on the module parameter line, and is
usually preferred.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$XDG_SESSION_CLASS</varname></term>
<varlistentry>
<term><varname>$XDG_SESSION_CLASS</varname></term>
<listitem><para>The session class. This
may be used instead of
<option>class=</option> on the
module parameter line, and is usually
preferred.</para></listitem>
</varlistentry>
<listitem><para>The session class. This may be used instead of
<option>class=</option> on the module parameter line, and is
usually preferred.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$XDG_SESSION_DESKTOP</varname></term>
<varlistentry>
<term><varname>$XDG_SESSION_DESKTOP</varname></term>
<listitem><para>A single, short
identifier string for the desktop
environment. This may be used to
indicate the session desktop used,
where this applies and if this
information is available. For example:
<literal>GNOME</literal>, or
<literal>KDE</literal>. It is
recommended to use the same
identifiers and capitalization as for
<varname>$XDG_CURRENT_DESKTOP</varname>,
as defined by the <ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop
Entry Specification</ulink>. (However,
note that
<varname>$XDG_SESSION_DESKTOP</varname>
only takes a single item, and not a
colon-separated list like
<varname>$XDG_CURRENT_DESKTOP</varname>.)
See
<citerefentry><refentrytitle>sd_session_get_desktop</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more details.</para></listitem>
</varlistentry>
<listitem><para>A single, short identifier string for the
desktop environment. This may be used to indicate the session
desktop used, where this applies and if this information is
available. For example: <literal>GNOME</literal>, or
<literal>KDE</literal>. It is recommended to use the same
identifiers and capitalization as for
<varname>$XDG_CURRENT_DESKTOP</varname>, as defined by the
<ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop
Entry Specification</ulink>. (However, note that
<varname>$XDG_SESSION_DESKTOP</varname> only takes a single
item, and not a colon-separated list like
<varname>$XDG_CURRENT_DESKTOP</varname>.) See
<citerefentry><refentrytitle>sd_session_get_desktop</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more details.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$XDG_SEAT</varname></term>
<varlistentry>
<term><varname>$XDG_SEAT</varname></term>
<listitem><para>The seat name the session
shall be registered for, if
any.</para></listitem>
</varlistentry>
<listitem><para>The seat name the session shall be registered
for, if any.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$XDG_VTNR</varname></term>
<varlistentry>
<term><varname>$XDG_VTNR</varname></term>
<listitem><para>The VT number the
session shall be registered for, if
any. (Only applies to seats with a VT
available, such as
<literal>seat0</literal>)</para></listitem>
</varlistentry>
<listitem><para>The VT number the session shall be registered
for, if any. (Only applies to seats with a VT available, such
as <literal>seat0</literal>)</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<programlisting>#%PAM-1.0
<programlisting>#%PAM-1.0
auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
@ -316,23 +274,23 @@ password required pam_unix.so
session required pam_unix.so
session required pam_loginuid.so
session required pam_systemd.so</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam_loginuid</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-logind.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>pam_loginuid</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.scope</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,126 +23,109 @@
-->
<refentry id="resolved.conf" conditional='ENABLE_RESOLVED'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>resolved.conf</title>
<productname>systemd</productname>
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>resolved.conf</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Tom</firstname>
<surname>Gundersen</surname>
<email>teg@jklm.no</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Tom</firstname>
<surname>Gundersen</surname>
<email>teg@jklm.no</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>resolved.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>resolved.conf</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>resolved.conf</refname>
<refname>resolved.conf.d</refname>
<refpurpose>Network Name Resolution configuration files</refpurpose>
</refnamediv>
<refnamediv>
<refname>resolved.conf</refname>
<refname>resolved.conf.d</refname>
<refpurpose>Network Name Resolution configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/systemd/resolved.conf</filename></para>
<para><filename>/etc/systemd/resolved.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/resolved.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/resolved.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/systemd/resolved.conf</filename></para>
<para><filename>/etc/systemd/resolved.conf.d/*.conf</filename></para>
<para><filename>/run/systemd/resolved.conf.d/*.conf</filename></para>
<para><filename>/usr/lib/systemd/resolved.conf.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>These configuration files control local DNS and LLMNR
name resolving.</para>
<para>These configuration files control local DNS and LLMNR
name resolving.</para>
</refsect1>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="conf" />
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<variablelist class='network-directives'>
<variablelist class='network-directives'>
<varlistentry>
<term><varname>DNS=</varname></term>
<listitem><para>A space separated list
of IPv4 and IPv6 addresses to be used
as system DNS servers. DNS requests
are sent to one of the listed DNS
servers in parallel to any
per-interface DNS servers acquired
from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. For
compatibility reasons, if set to the
empty list the DNS servers listed in
<filename>/etc/resolv.conf</filename>
are used, if any are
configured there. This setting
defaults to the empty
list.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>DNS=</varname></term>
<listitem><para>A space separated list of IPv4 and IPv6
addresses to be used as system DNS servers. DNS requests are
sent to one of the listed DNS servers in parallel to any
per-interface DNS servers acquired from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
For compatibility reasons, if set to the empty list the DNS
servers listed in <filename>/etc/resolv.conf</filename> are
used, if any are configured there. This setting defaults to
the empty list.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>FallbackDNS=</varname></term>
<listitem><para>A space separated list
of IPv4 and IPv6 addresses to be used
as the fallback DNS servers. Any
per-interface DNS servers obtained
from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
take precedence over this setting, as
do any servers set via
<varname>DNS=</varname> above or
<filename>/etc/resolv.conf</filename>. This
setting is hence only used if no other
DNS server information is known. If
this option is not given, a
compiled-in list of DNS servers is
used instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>FallbackDNS=</varname></term>
<listitem><para>A space separated list of IPv4 and IPv6
addresses to be used as the fallback DNS servers. Any
per-interface DNS servers obtained from
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
take precedence over this setting, as do any servers set via
<varname>DNS=</varname> above or
<filename>/etc/resolv.conf</filename>. This setting is hence
only used if no other DNS server information is known. If this
option is not given, a compiled-in list of DNS servers is used
instead.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LLMNR=</varname></term>
<listitem><para>Takes a boolean
argument or
<literal>resolve</literal>. Controls
Link-Local Multicast Name Resolution support (<ulink
url="https://tools.ietf.org/html/rfc4795">RFC
4794</ulink>) on the local host. If
true enables full LLMNR responder and
resolver support. If false disable
both. If set to
<literal>resolve</literal> only
resolving support is enabled, but
responding is disabled. Note that
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
also maintains per-interface LLMNR
settings. LLMNR will be enabled on an
interface only if the per-interface
and the global setting is
on.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>LLMNR=</varname></term>
<listitem><para>Takes a boolean argument or
<literal>resolve</literal>. Controls Link-Local Multicast Name
Resolution support (<ulink
url="https://tools.ietf.org/html/rfc4795">RFC 4794</ulink>) on
the local host. If true enables full LLMNR responder and
resolver support. If false disable both. If set to
<literal>resolve</literal> only resolving support is enabled,
but responding is disabled. Note that
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
also maintains per-interface LLMNR settings. LLMNR will be
enabled on an interface only if the per-interface and the
global setting is on.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-resolved.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-networkd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>resolv.conf</refentrytitle><manvolnum>4</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,134 +22,127 @@
-->
<refentry id="runlevel"
xmlns:xi="http://www.w3.org/2001/XInclude"
conditional="HAVE_UTMP">
xmlns:xi="http://www.w3.org/2001/XInclude"
conditional="HAVE_UTMP">
<refentryinfo>
<title>runlevel</title>
<productname>systemd</productname>
<refentryinfo>
<title>runlevel</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>runlevel</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>runlevel</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>runlevel</refname>
<refpurpose>Print previous and current SysV runlevel</refpurpose>
</refnamediv>
<refnamediv>
<refname>runlevel</refname>
<refpurpose>Print previous and current SysV runlevel</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>runlevel <arg choice="opt" rep="repeat">options</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>runlevel <arg choice="opt" rep="repeat">options</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>runlevel</command> prints the previous
and current SysV runlevel if they are known.</para>
<para><command>runlevel</command> prints the previous and current
SysV runlevel if they are known.</para>
<para>The two runlevel characters are separated by a
single space character. If a runlevel cannot be
determined, N is printed instead. If neither can be
determined, the word "unknown" is printed.</para>
<para>The two runlevel characters are separated by a single space
character. If a runlevel cannot be determined, N is printed
instead. If neither can be determined, the word "unknown" is
printed.</para>
<para>Unless overridden in the environment, this will
check the utmp database for recent runlevel
changes.</para>
</refsect1>
<para>Unless overridden in the environment, this will check the
utmp database for recent runlevel changes.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following option is understood:</para>
<para>The following option is understood:</para>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
</variablelist>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>If one or both runlevels could be determined, 0
is returned, a non-zero failure code otherwise.</para>
<para>If one or both runlevels could be determined, 0 is returned,
a non-zero failure code otherwise.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Environment</title>
<refsect1>
<title>Environment</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$RUNLEVEL</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$RUNLEVEL</varname></term>
<listitem><para>If
<varname>$RUNLEVEL</varname> is set,
<command>runlevel</command> will print
this value as current runlevel and
ignore utmp.</para></listitem>
</varlistentry>
<listitem><para>If <varname>$RUNLEVEL</varname> is set,
<command>runlevel</command> will print this value as current
runlevel and ignore utmp.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$PREVLEVEL</varname></term>
<varlistentry>
<term><varname>$PREVLEVEL</varname></term>
<listitem><para>If
<varname>$PREVLEVEL</varname> is set,
<command>runlevel</command> will print
this value as previous runlevel and
ignore utmp.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>If <varname>$PREVLEVEL</varname> is set,
<command>runlevel</command> will print this value as previous
runlevel and ignore utmp.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Files</title>
<refsect1>
<title>Files</title>
<variablelist>
<varlistentry>
<term><filename>/var/run/utmp</filename></term>
<variablelist>
<varlistentry>
<term><filename>/var/run/utmp</filename></term>
<listitem><para>The utmp database
<command>runlevel</command> reads the
previous and current runlevel
from.</para></listitem>
<listitem><para>The utmp database <command>runlevel</command>
reads the previous and current runlevel
from.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>This is a legacy command available for compatibility only.
It should not be used anymore, as the concept of runlevels is
obsolete.</para>
</refsect1>
<para>This is a legacy command available for compatibility
only. It should not be used anymore, as the concept of
runlevels is obsolete.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,71 +22,71 @@
-->
<refentry id="sd-daemon"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd-daemon</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd-daemon</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd-daemon</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<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>
<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 &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<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>
init system.</para>
<para><filename>sd-daemon.h</filename> provide APIs for new-style
daemons, as implemented by the
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
init system.</para>
<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>
<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 "&lt;0&gt;" /* system is unusable */
<programlisting>#define SD_EMERG "&lt;0&gt;" /* system is unusable */
#define SD_ALERT "&lt;1&gt;" /* action must be taken immediately */
#define SD_CRIT "&lt;2&gt;" /* critical conditions */
#define SD_ERR "&lt;3&gt;" /* error conditions */
@ -95,53 +95,50 @@
#define SD_INFO "&lt;6&gt;" /* informational */
#define SD_DEBUG "&lt;7&gt;" /* 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>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>
<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>
<example>
<title>Hello World</title>
<para>A daemon may log with the log level
NOTICE by issuing this call:</para>
<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>
<programlisting>fprintf(stderr, SD_NOTICE "Hello World!\n");</programlisting>
</example>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<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>
<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>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,152 +22,145 @@
-->
<refentry id="sd-id128"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd-id128</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd-id128</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd-id128</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd-id128</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd-id128</refname>
<refname>sd_id128_t</refname>
<refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_CONST_STR</refname>
<refname>SD_ID128_FORMAT_STR</refname>
<refname>SD_ID128_FORMAT_VAL</refname>
<refname>sd_id128_equal</refname>
<refpurpose>APIs for processing 128-bit IDs</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd-id128</refname>
<refname>sd_id128_t</refname>
<refname>SD_ID128_MAKE</refname>
<refname>SD_ID128_CONST_STR</refname>
<refname>SD_ID128_FORMAT_STR</refname>
<refname>SD_ID128_FORMAT_VAL</refname>
<refname>sd_id128_equal</refname>
<refpurpose>APIs for processing 128-bit IDs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>sd-id128.h</filename> provides APIs to
process and generate 128-bit ID values. The 128-bit ID
values processed and generated by these APIs are a
generalization of OSF UUIDs as defined by <ulink
url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink> but use a simpler string
format. These functions impose no structure on the
used IDs, much unlike OSF UUIDs or Microsoft GUIDs,
but are fully compatible with those types of IDs.
</para>
<para><filename>sd-id128.h</filename> provides APIs to process and
generate 128-bit ID values. The 128-bit ID values processed and
generated by these APIs are a generalization of OSF UUIDs as
defined by <ulink url="https://tools.ietf.org/html/rfc4122">RFC
4122</ulink> but use a simpler string format. These functions
impose no structure on the used IDs, much unlike OSF UUIDs or
Microsoft GUIDs, but are fully compatible with those types of IDs.
</para>
<para>See
<citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the implemented
functions.</para>
<para>See
<citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the implemented functions.</para>
<para>A 128-bit ID is implemented as the following
union type:</para>
<para>A 128-bit ID is implemented as the following
union type:</para>
<programlisting>typedef union sd_id128 {
uint8_t bytes[16];
uint64_t qwords[2];
<programlisting>typedef union sd_id128 {
uint8_t bytes[16];
uint64_t qwords[2];
} sd_id128_t;</programlisting>
<para>This union type allows accessing the 128-bit ID
as 16 separate bytes or two 64-bit words. It is generally
safer to access the ID components by their 8-bit array
to avoid endianness issues. This union is intended to
be passed call-by-value (as opposed to
call-by-reference) and may be directly manipulated by
clients.</para>
<para>This union type allows accessing the 128-bit ID as 16
separate bytes or two 64-bit words. It is generally safer to
access the ID components by their 8-bit array to avoid endianness
issues. This union is intended to be passed call-by-value (as
opposed to call-by-reference) and may be directly manipulated by
clients.</para>
<para>A couple of macros are defined to denote and
decode 128-bit IDs:</para>
<para>A couple of macros are defined to denote and decode 128-bit
IDs:</para>
<para><function>SD_ID128_MAKE()</function> may be used
to denote a constant 128-bit ID in source code. A
commonly used idiom is to assign a name to a 128-bit
ID using this macro:</para>
<para><function>SD_ID128_MAKE()</function> may be used to denote a
constant 128-bit ID in source code. A commonly used idiom is to
assign a name to a 128-bit ID using this macro:</para>
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
<programlisting>#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b9,07,29,ab,34,a2,50,b1)</programlisting>
<para><function>SD_ID128_CONST_STR()</function> may be
used to convert constant 128-bit IDs into constant
strings for output. The following example code will
output the string
"fc2e22bc6ee647b6b90729ab34a250b1":</para>
<programlisting>int main(int argc, char *argv[]) {
puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
<para><function>SD_ID128_CONST_STR()</function> may be used to
convert constant 128-bit IDs into constant strings for output. The
following example code will output the string
"fc2e22bc6ee647b6b90729ab34a250b1":</para>
<programlisting>int main(int argc, char *argv[]) {
puts(SD_ID128_CONST_STR(SD_MESSAGE_COREDUMP));
}</programlisting>
<para><function>SD_ID128_FORMAT_STR</function> and
<function>SD_ID128_FORMAT_VAL()</function> may be used
to format a 128-bit ID in a
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
format string, as shown in the following
example:</para>
<para><function>SD_ID128_FORMAT_STR</function> and
<function>SD_ID128_FORMAT_VAL()</function> may be used to format a
128-bit ID in a
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
format string, as shown in the following example:</para>
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t id;
id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ".\n", SD_ID128_FORMAT_VAL(id));
return 0;
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t id;
id = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
printf("The ID encoded in this C file is " SD_ID128_FORMAT_STR ".\n", SD_ID128_FORMAT_VAL(id));
return 0;
}</programlisting>
<para>Use <function>sd_id128_equal()</function> to compare two 128-bit IDs:</para>
<para>Use <function>sd_id128_equal()</function> to compare two 128-bit IDs:</para>
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t a, b, c;
a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e);
c = a;
assert(sd_id128_equal(a, c));
assert(!sd_id128_equal(a, b));
return 0;
<programlisting>int main(int argc, char *argv[]) {
sd_id128_t a, b, c;
a = SD_ID128_MAKE(ee,89,be,71,bd,6e,43,d6,91,e6,c5,5d,eb,03,02,07);
b = SD_ID128_MAKE(f2,28,88,9c,5f,09,44,15,9d,d7,04,77,58,cb,e7,3e);
c = a;
assert(sd_id128_equal(a, c));
assert(!sd_id128_equal(a, b));
return 0;
}</programlisting>
<para>Note that new, randomized IDs may be generated
with
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--new-id</option> option.</para>
</refsect1>
<para>Note that new, randomized IDs may be generated with
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--new-id</option> option.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<xi:include href="libsystemd-pkgconfig.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_to_string</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,106 +22,104 @@
-->
<refentry id="sd-journal"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd-journal</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd-journal</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd-journal</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd-journal</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd-journal</refname>
<refpurpose>APIs for submitting and querying log entries to and from the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd-journal</refname>
<refpurpose>APIs for submitting and querying log entries to and
from the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>sd-journal.h</filename> provides APIs
to submit and query log entries. The APIs exposed act
both as client for the
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
journal service and as parser for the journal files
on disk.
</para>
<para><filename>sd-journal.h</filename> provides APIs to submit
and query log entries. The APIs exposed act both as client for the
<citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
journal service and as parser for the journal files on disk.
</para>
<para>See
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the functions
implemented.</para>
<para>See
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the functions implemented.</para>
<para>Command line access for submitting entries to
the journal is available with the
<citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool. Command line access for querying entries from
the journal is available with the
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool.</para>
</refsect1>
<para>Command line access for submitting entries to the journal is
available with the
<citerefentry><refentrytitle>systemd-cat</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool. Command line access for querying entries from the journal is
available with the
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<xi:include href="libsystemd-pkgconfig.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_usage</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_catalog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,117 +22,114 @@
-->
<refentry id="sd-login" conditional='HAVE_PAM'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd-login</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd-login</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd-login</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd-login</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd-login</refname>
<refpurpose>APIs for
tracking logins</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd-login</refname>
<refpurpose>APIs for
tracking logins</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
</funcsynopsis>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
<cmdsynopsis>
<command>pkg-config --cflags --libs libsystemd</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>sd-login.h</filename> provides APIs to
introspect and monitor seat, login session and user
status information on the local system. </para>
<para><filename>sd-login.h</filename> provides APIs to introspect
and monitor seat, login session and user status information on the
local system. </para>
<para>See <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
on Linux</ulink> for an introduction into multi-seat
support on Linux, the background for this set of APIs.</para>
<para>See <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
on Linux</ulink> for an introduction into multi-seat support on
Linux, the background for this set of APIs.</para>
<para>Note that these APIs only allow purely passive access
and monitoring of seats, sessions and users. To
actively make changes to the seat configuration,
terminate login sessions, or switch session on a seat
you need to utilize the D-Bus API of
systemd-logind, instead.</para>
<para>Note that these APIs only allow purely passive access and
monitoring of seats, sessions and users. To actively make changes
to the seat configuration, terminate login sessions, or switch
session on a seat you need to utilize the D-Bus API of
systemd-logind, instead.</para>
<para>These functions synchronously access data in
<filename>/proc</filename>,
<filename>/sys/fs/cgroup</filename> and
<filename>/run</filename>. All of these are virtual
file systems, hence the runtime cost of the accesses
is relatively cheap.</para>
<para>These functions synchronously access data in
<filename>/proc</filename>, <filename>/sys/fs/cgroup</filename>
and <filename>/run</filename>. All of these are virtual file
systems, hence the runtime cost of the accesses is relatively
cheap.</para>
<para>It is possible (and often a very good choice) to
mix calls to the synchronous interface of
<filename>sd-login.h</filename> with the asynchronous
D-Bus interface of systemd-logind. However, if this is
done you need to think a bit about possible races
since the stream of events from D-Bus and from
<filename>sd-login.h</filename> interfaces such as the
login monitor are asynchronous and not ordered against
each other.</para>
<para>It is possible (and often a very good choice) to mix calls
to the synchronous interface of <filename>sd-login.h</filename>
with the asynchronous D-Bus interface of systemd-logind. However,
if this is done you need to think a bit about possible races since
the stream of events from D-Bus and from
<filename>sd-login.h</filename> interfaces such as the login
monitor are asynchronous and not ordered against each
other.</para>
<para>If the functions return string arrays, these are
generally <constant>NULL</constant> terminated and need to be freed by the
caller with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including the strings referenced
therein. Similarly, individual strings returned need to
be freed, as well.</para>
<para>If the functions return string arrays, these are generally
<constant>NULL</constant> terminated and need to be freed by the
caller with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including the strings referenced therein.
Similarly, individual strings returned need to be freed, as
well.</para>
<para>As a special exception, instead of an empty
string array <constant>NULL</constant> may be returned, which should be
treated equivalent to an empty string array.</para>
<para>As a special exception, instead of an empty string array
<constant>NULL</constant> may be returned, which should be treated
equivalent to an empty string array.</para>
<para>See
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the functions
implemented.</para>
</refsect1>
<para>See
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information about the functions
implemented.</para>
</refsect1>
<xi:include href="libsystemd-pkgconfig.xml" />
<xi:include href="libsystemd-pkgconfig.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_uid_get_state</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_seat_get_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_login_monitor_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,76 +22,74 @@
-->
<refentry id="sd_booted"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_booted</title>
<productname>systemd</productname>
<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>
<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>
<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>
<refnamediv>
<refname>sd_booted</refname>
<refpurpose>Test whether the system is running the systemd init system</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_booted</function></funcdef>
<paramdef>void</paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<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>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>
<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
positive return value, zero otherwise.</para>
</refsect1>
<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 positive return value, zero otherwise.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<para>Internally, this function checks whether the
directory <filename>/run/systemd/system/</filename>
exists. A simple check like this can also be
implemented trivially in shell or any other
language.</para>
</refsect1>
<para>Internally, this function checks whether the directory
<filename>/run/systemd/system/</filename> exists. A simple check
like this can also be implemented trivially in shell or any other
language.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,130 +23,124 @@
<refentry id="sd_bus_message_get_cookie" conditional="ENABLE_KDBUS">
<refentryinfo>
<title>sd_bus_message_get_cookie</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_bus_message_get_cookie</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_bus_message_get_cookie</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_bus_message_get_cookie</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_bus_message_get_cookie</refname>
<refname>sd_bus_message_get_reply_cookie</refname>
<refpurpose>Returns the transaction cookie of a message</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_bus_message_get_cookie</refname>
<refname>sd_bus_message_get_reply_cookie</refname>
<refpurpose>Returns the transaction cookie of a message</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_cookie</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_cookie</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_reply_cookie</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_reply_cookie</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_bus_message_get_cookie()</function> returns
the transaction cookie of a message. The cookie
uniquely identifies a message within each bus peer,
but is not globally unique. It is assigned when a
message is sent.</para>
<para><function>sd_bus_message_get_cookie()</function> returns the
transaction cookie of a message. The cookie uniquely identifies a
message within each bus peer, but is not globally unique. It is
assigned when a message is sent.</para>
<para><function>sd_bus_message_get_reply_cookie()</function>
returns the transaction cookie of the message the
specified message is a response to. When a reply
message is generated for a method call message, its
cookie is copied over into this field. Note that while
every message that is transferred is identified by a
cookie, only response messages carry a reply cookie
field.</para>
<para><function>sd_bus_message_get_reply_cookie()</function>
returns the transaction cookie of the message the specified
message is a response to. When a reply message is generated for a
method call message, its cookie is copied over into this field.
Note that while every message that is transferred is identified by
a cookie, only response messages carry a reply cookie
field.</para>
<para>Both functions take a message object as first
parameter and a place to store the 64-bit cookie
in.</para>
</refsect1>
<para>Both functions take a message object as first parameter and
a place to store the 64-bit cookie in.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
<para>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error
code.</para>
<para>On success, the cookie/reply cookie is returned
in the specified 64-bit unsigned integer variable.</para>
</refsect1>
<para>On success, the cookie/reply cookie is returned in the
specified 64-bit unsigned integer variable.</para>
</refsect1>
<refsect1>
<title>Errors</title>
<refsect1>
<title>Errors</title>
<para>Returned errors may indicate the following problems:</para>
<para>Returned errors may indicate the following problems:</para>
<variablelist>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<variablelist>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>A specified parameter
is invalid.</para></listitem>
</varlistentry>
<listitem><para>A specified parameter
is invalid.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENODATA</constant></term>
<varlistentry>
<term><constant>-ENODATA</constant></term>
<listitem><para>No cookie has been
assigned to this message. This either
indicates that the message has not
been sent yet and hence has no cookie
assigned, or that the message is not a
method response message and hence
carries a reply cookie
field.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>No cookie has been assigned to this message.
This either indicates that the message has not been sent yet
and hence has no cookie assigned, or that the message is not a
method response message and hence carries a reply cookie
field.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_bus_message_get_cookie()</function>
and <function>sd_bus_message_get_reply_cookie()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_bus_message_get_cookie()</function> and
<function>sd_bus_message_get_reply_cookie()</function> interfaces
are available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,168 +23,159 @@
<refentry id="sd_bus_message_get_monotonic_usec" conditional="ENABLE_KDBUS">
<refentryinfo>
<title>sd_bus_message_get_monotonic_usec</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_bus_message_get_monotonic_usec</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_bus_message_get_monotonic_usec</refname>
<refname>sd_bus_message_get_realtime_usec</refname>
<refname>sd_bus_message_get_seqnum</refname>
<refpurpose>Retrieve the sender timestamps and sequence number of a message</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_bus_message_get_monotonic_usec</refname>
<refname>sd_bus_message_get_realtime_usec</refname>
<refname>sd_bus_message_get_seqnum</refname>
<refpurpose>Retrieve the sender timestamps and sequence number of a message</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_monotonic_usec</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_monotonic_usec</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_realtime_usec</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_realtime_usec</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_seqnum</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>seqnum</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_bus_message_get_seqnum</function></funcdef>
<paramdef>sd_bus_message *<parameter>message</parameter></paramdef>
<paramdef>uint64_t *<parameter>seqnum</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_bus_message_get_monotonic_usec()</function>
returns the monotonic timestamp of the time the
message was sent. This value is in microseconds since
the <literal>CLOCK_MONOTONIC</literal> epoch, see
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details.</para>
<para><function>sd_bus_message_get_monotonic_usec()</function>
returns the monotonic timestamp of the time the message was sent.
This value is in microseconds since the
<constant>CLOCK_MONOTONIC</constant> epoch, see
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details.</para>
<para>Similar,
<function>sd_bus_message_get_realtime_usec()</function>
returns the realtime (wallclock) timestamp of the time
the message was sent. This value is in microseconds
since Jan 1st, 1970, i.e. in the
<literal>CLOCK_REALTIME</literal> clock.</para>
<para>Similar,
<function>sd_bus_message_get_realtime_usec()</function> returns
the realtime (wallclock) timestamp of the time the message was
sent. This value is in microseconds since Jan 1st, 1970, i.e. in
the <constant>CLOCK_REALTIME</constant> clock.</para>
<para><function>sd_bus_message_get_seqnum()</function>
returns the kernel-assigned sequence number of the
message. The kernel assigns a global, monotonically
increasing sequence number to all messages transmitted
on the local system, at the time the message was
sent. This sequence number is useful for determining
message send order, even across different busses of
the local system. The sequence number combined with
the boot ID of the system (as returned by
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
is a suitable globally unique identifier for bus
messages.</para>
<para><function>sd_bus_message_get_seqnum()</function> returns the
kernel-assigned sequence number of the message. The kernel assigns
a global, monotonically increasing sequence number to all messages
transmitted on the local system, at the time the message was sent.
This sequence number is useful for determining message send order,
even across different busses of the local system. The sequence
number combined with the boot ID of the system (as returned by
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
is a suitable globally unique identifier for bus messages.</para>
<para>Note that the sending order and receiving order
of messages might differ, in particular for broadcast
messages. This means that the sequence number and the
timestamps of messages a client reads are not
necessarily monotonically increasing.</para>
<para>Note that the sending order and receiving order of messages
might differ, in particular for broadcast messages. This means
that the sequence number and the timestamps of messages a client
reads are not necessarily monotonically increasing.</para>
<para>These timestamps and the sequence number are
attached to each message by the kernel and cannot be
manipulated by the sender.</para>
<para>These timestamps and the sequence number are attached to
each message by the kernel and cannot be manipulated by the
sender.</para>
<para>Note that these timestamps are only available on
some bus transports, and only after support for them
has been negotiated with the
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call.</para>
</refsect1>
<para>Note that these timestamps are only available on some bus
transports, and only after support for them has been negotiated
with the
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
<para>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error
code.</para>
<para>On success, the timestamp or sequence number is
returned in the specified 64-bit unsigned integer
variable.</para>
</refsect1>
<para>On success, the timestamp or sequence number is returned in
the specified 64-bit unsigned integer variable.</para>
</refsect1>
<refsect1>
<title>Errors</title>
<refsect1>
<title>Errors</title>
<para>Returned errors may indicate the following problems:</para>
<para>Returned errors may indicate the following problems:</para>
<variablelist>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<variablelist>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>A specified parameter
is invalid.</para></listitem>
</varlistentry>
<listitem><para>A specified parameter is
invalid.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENODATA</constant></term>
<varlistentry>
<term><constant>-ENODATA</constant></term>
<listitem><para>No timestamp or
sequence number information is
attached to the passed message. This
error is returned if the underlying
transport does not support
timestamping or assigning of sequence
numbers, or if this feature has not
been negotiated with
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>No timestamp or sequence number information is
attached to the passed message. This error is returned if the
underlying transport does not support timestamping or
assigning of sequence numbers, or if this feature has not been
negotiated with
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The
<function>sd_bus_message_get_monotonic_usec()</function>,
<function>sd_bus_message_get_realtime_usec()</function>,
and <function>sd_bus_message_get_seqnum()</function>
interfaces are available as a shared library, which
can be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The
<function>sd_bus_message_get_monotonic_usec()</function>,
<function>sd_bus_message_get_realtime_usec()</function>, and
<function>sd_bus_message_get_seqnum()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_negotiate_timestamp</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,206 +23,188 @@
<refentry id="sd_bus_request_name" conditional="ENABLE_KDBUS">
<refentryinfo>
<title>sd_bus_request_name</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_bus_request_name</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_bus_request_name</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_bus_request_name</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_bus_request_name</refname>
<refname>sd_bus_release_name</refname>
<refpurpose>Request or release a well-known name on a bus</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_bus_request_name</refname>
<refname>sd_bus_release_name</refname>
<refpurpose>Request or release a well-known name on a bus</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_bus_request_name</function></funcdef>
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
<paramdef>const char *<parameter>name</parameter></paramdef>
<paramdef>uint64_t <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_request_name</function></funcdef>
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
<paramdef>const char *<parameter>name</parameter></paramdef>
<paramdef>uint64_t <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_bus_release_name</function></funcdef>
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
<paramdef>const char *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_bus_release_name</function></funcdef>
<paramdef>sd_bus *<parameter>bus</parameter></paramdef>
<paramdef>const char *<parameter>name</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_bus_request_name()</function> requests
a well-known name on a bus. It takes a bus connection,
a valid bus name and a flags parameter. The flags
parameter is a combination of the following
flags:</para>
<para><function>sd_bus_request_name()</function> requests a
well-known name on a bus. It takes a bus connection, a valid bus
name and a flags parameter. The flags parameter is a combination
of the following flags:</para>
<variablelist>
<varlistentry>
<term><varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname></term>
<variablelist>
<varlistentry>
<term><varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname></term>
<listitem><para>After acquiring the
name successfully, permit other peers
to take over the name when they try to
acquire it with the
<varname>SD_BUS_NAME_REPLACE_EXISTING</varname>
flag set. If
<varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname>
is not set on the original request,
such a request by other peers will be
denied.</para></listitem>
</varlistentry>
<listitem><para>After acquiring the name successfully, permit
other peers to take over the name when they try to acquire it
with the <varname>SD_BUS_NAME_REPLACE_EXISTING</varname> flag
set. If <varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> is
not set on the original request, such a request by other peers
will be denied.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SD_BUS_NAME_REPLACE_EXISTING</varname></term>
<varlistentry>
<term><varname>SD_BUS_NAME_REPLACE_EXISTING</varname></term>
<listitem><para>Take over the name
if it is already acquired by another
peer, and that other peer has permitted
takeover by setting
<varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname>
while acquiring it.</para></listitem>
</varlistentry>
<listitem><para>Take over the name if it is already acquired
by another peer, and that other peer has permitted takeover by
setting <varname>SD_BUS_NAME_ALLOW_REPLACEMENT</varname> while
acquiring it.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>SD_BUS_NAME_QUEUE</varname></term>
<varlistentry>
<term><varname>SD_BUS_NAME_QUEUE</varname></term>
<listitem><para>Queue the acquisition
of the name when the name is already
taken.</para></listitem>
</varlistentry>
</variablelist>
<listitem><para>Queue the acquisition of the name when the
name is already taken.</para></listitem>
</varlistentry>
</variablelist>
<para><function>sd_bus_release_name()</function> releases
an acquired well-known name. It takes a bus connection
and a valid bus name as parameters.</para>
</refsect1>
<para><function>sd_bus_release_name()</function> releases an
acquired well-known name. It takes a bus connection and a valid
bus name as parameters.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
<para>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error
code.</para>
<para>If <varname>SD_BUS_NAME_QUEUE</varname> is
specified, <function>sd_bus_request_name()</function>
will return 0 when the name is already taken by
another peer and the client has been added to the
queue for the name. In that case, the caller can
subscribe to <literal>NameOwnerChanged</literal>
signals to be notified when the name is successfully
acquired. <function>sd_bus_request_name()</function>
returns &gt; 0 when the name has immediately been
acquired successfully.</para>
</refsect1>
<para>If <varname>SD_BUS_NAME_QUEUE</varname> is specified,
<function>sd_bus_request_name()</function> will return 0 when the
name is already taken by another peer and the client has been
added to the queue for the name. In that case, the caller can
subscribe to <literal>NameOwnerChanged</literal> signals to be
notified when the name is successfully acquired.
<function>sd_bus_request_name()</function> returns &gt; 0 when the
name has immediately been acquired successfully.</para>
</refsect1>
<refsect1>
<title>Errors</title>
<refsect1>
<title>Errors</title>
<para>Returned errors may indicate the following problems:</para>
<para>Returned errors may indicate the following problems:</para>
<variablelist>
<varlistentry>
<term><constant>-EALREADY</constant></term>
<variablelist>
<varlistentry>
<term><constant>-EALREADY</constant></term>
<listitem><para>The caller already is
the owner of the specified
name.</para></listitem>
</varlistentry>
<listitem><para>The caller already is the owner of the
specified name.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-EEXIST</constant></term>
<varlistentry>
<term><constant>-EEXIST</constant></term>
<listitem><para>The name has already
been acquired by a different peer, and
SD_BUS_NAME_REPLACE_EXISTING was not
specified or the other peer did not
specify SD_BUS_NAME_ALLOW_REPLACEMENT
while acquiring the
name.</para></listitem>
</varlistentry>
<listitem><para>The name has already been acquired by a
different peer, and SD_BUS_NAME_REPLACE_EXISTING was not
specified or the other peer did not specify
SD_BUS_NAME_ALLOW_REPLACEMENT while acquiring the
name.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ESRCH</constant></term>
<varlistentry>
<term><constant>-ESRCH</constant></term>
<listitem><para>It was attempted to
release a name that is currently not
registered on the
bus.</para></listitem>
</varlistentry>
<listitem><para>It was attempted to release a name that is
currently not registered on the bus.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-EADDRINUSE</constant></term>
<varlistentry>
<term><constant>-EADDRINUSE</constant></term>
<listitem><para>It was attempted to
release a name that is owned by a
different peer on the
bus.</para></listitem>
</varlistentry>
<listitem><para>It was attempted to release a name that is
owned by a different peer on the bus.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<varlistentry>
<term><constant>-EINVAL</constant></term>
<listitem><para>A specified parameter
is invalid.</para></listitem>
</varlistentry>
<listitem><para>A specified parameter is
invalid.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ENOTCONN</constant></term>
<varlistentry>
<term><constant>-ENOTCONN</constant></term>
<listitem><para>The bus connection has
been disconnected.</para></listitem>
</varlistentry>
<listitem><para>The bus connection has been
disconnected.</para></listitem>
</varlistentry>
<varlistentry>
<term><constant>-ECHILD</constant></term>
<varlistentry>
<term><constant>-ECHILD</constant></term>
<listitem><para>The bus connection has
been created in a different process
than the current one.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>The bus connection has been created in a
different process than the current one.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_bus_acquire_name()</function>
and <function>sd_bus_release_name()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_bus_acquire_name()</function> and
<function>sd_bus_release_name()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_bus_new</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,119 +23,119 @@
<refentry id="sd_get_seats" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_get_seats</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_get_seats</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_get_seats</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_get_seats</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_get_seats</refname>
<refname>sd_get_sessions</refname>
<refname>sd_get_uids</refname>
<refname>sd_get_machine_names</refname>
<refpurpose>Determine available seats, sessions, logged in users and virtual machines/containers</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_get_seats</refname>
<refname>sd_get_sessions</refname>
<refname>sd_get_uids</refname>
<refname>sd_get_machine_names</refname>
<refpurpose>Determine available seats, sessions, logged in users and virtual machines/containers</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_get_seats</function></funcdef>
<paramdef>char ***<parameter>seats</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_seats</function></funcdef>
<paramdef>char ***<parameter>seats</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_sessions</function></funcdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_sessions</function></funcdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_uids</function></funcdef>
<paramdef>uid_t **<parameter>users</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_uids</function></funcdef>
<paramdef>uid_t **<parameter>users</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_machine_names</function></funcdef>
<paramdef>char ***<parameter>machines</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_get_machine_names</function></funcdef>
<paramdef>char ***<parameter>machines</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_get_seats()</function> may be used
to determine all currently available local
seats. Returns a <constant>NULL</constant> terminated array of seat
identifiers. The returned array and all strings it
references need to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that instead of an empty array
<constant>NULL</constant> may be returned and should be considered
equivalent to an empty array.</para>
<para><function>sd_get_seats()</function> may be used to determine
all currently available local seats. Returns a
<constant>NULL</constant> terminated array of seat identifiers.
The returned array and all strings it references need to be freed
with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that instead of an empty array
<constant>NULL</constant> may be returned and should be considered
equivalent to an empty array.</para>
<para>Similarly, <function>sd_get_sessions()</function> may
be used to determine all current login sessions.</para>
<para>Similarly, <function>sd_get_sessions()</function> may be
used to determine all current login sessions.</para>
<para>Similarly, <function>sd_get_uids()</function> may
be used to determine all Unix users who currently have login sessions.</para>
<para>Similarly, <function>sd_get_uids()</function> may be used to
determine all Unix users who currently have login sessions.</para>
<para>Similarly,
<function>sd_get_machine_names()</function> may be
used to determine all current virtual machines and
containers on the system.</para>
<para>Similarly, <function>sd_get_machine_names()</function> may
be used to determine all current virtual machines and containers
on the system.</para>
<para>Note that the returned lists are not sorted and in an undefined order.</para>
</refsect1>
<para>Note that the returned lists are not sorted and in an
undefined order.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, <function>sd_get_seats()</function>,
<function>sd_get_sessions()</function>,
<function>sd_get_uids()</function> and
<function>sd_get_machine_names()</function> return the
number of entries in the arrays. On failure, these
calls return a negative errno-style error code.</para>
</refsect1>
<para>On success, <function>sd_get_seats()</function>,
<function>sd_get_sessions()</function>,
<function>sd_get_uids()</function> and
<function>sd_get_machine_names()</function> return the number of
entries in the arrays. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_get_seats()</function>,
<function>sd_get_sessions()</function>,
<function>sd_get_uids()</function> and
<function>sd_get_machine_names()</function> interfaces
are available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_get_seats()</function>,
<function>sd_get_sessions()</function>,
<function>sd_get_uids()</function> and
<function>sd_get_machine_names()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,115 +23,107 @@
<refentry id="sd_id128_get_machine">
<refentryinfo>
<title>sd_id128_get_machine</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_id128_get_machine</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_id128_get_machine</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_id128_get_machine</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_id128_get_machine</refname>
<refname>sd_id128_get_boot</refname>
<refpurpose>Retrieve 128-bit IDs</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_id128_get_machine</refname>
<refname>sd_id128_get_boot</refname>
<refpurpose>Retrieve 128-bit IDs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_id128_get_machine</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_get_machine</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_get_boot</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_get_boot</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_id128_get_machine()</function>
returns the machine ID of the executing host. This
reads and parses the
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file. This function caches the machine ID internally
to make retrieving the machine ID a cheap
operation.</para>
<para><function>sd_id128_get_machine()</function> returns the
machine ID of the executing host. This reads and parses the
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file. This function caches the machine ID internally to make
retrieving the machine ID a cheap operation.</para>
<para><function>sd_id128_get_boot()</function> returns
the boot ID of the executing kernel. This reads and
parses the
<filename>/proc/sys/kernel/random/boot_id</filename>
file exposed by the kernel. It is randomly generated
early at boot and is unique for every running kernel
instance. See
<citerefentry project='man-pages'><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>
for more information. This function also internally
caches the returned ID to make this call a cheap
operation.</para>
<para><function>sd_id128_get_boot()</function> returns the boot ID
of the executing kernel. This reads and parses the
<filename>/proc/sys/kernel/random/boot_id</filename> file exposed
by the kernel. It is randomly generated early at boot and is
unique for every running kernel instance. See
<citerefentry project='man-pages'><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>
for more information. This function also internally caches the
returned ID to make this call a cheap operation.</para>
<para>Note that
<function>sd_id128_get_boot()</function> always returns
a UUID v4 compatible
ID. <function>sd_id128_get_machine()</function> will
also return a UUID v4-compatible ID on new
installations but might not on older. It is possible
to convert the machine ID into a UUID v4-compatible
one. For more information, see
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>Note that <function>sd_id128_get_boot()</function> always
returns a UUID v4 compatible ID.
<function>sd_id128_get_machine()</function> will also return a
UUID v4-compatible ID on new installations but might not on older.
It is possible to convert the machine ID into a UUID v4-compatible
one. For more information, see
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para>
<para>For more information about the
<literal>sd_id128_t</literal> type see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
</refsect1>
<para>For more information about the <literal>sd_id128_t</literal>
type see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The two calls return 0 on success (in which
case <parameter>ret</parameter> is filled in), or a
negative errno-style error code.</para>
</refsect1>
<para>The two calls return 0 on success (in which case
<parameter>ret</parameter> is filled in), or a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_id128_get_machine()</function>
and <function>sd_id128_get_boot()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_id128_get_machine()</function> and
<function>sd_id128_get_boot()</function> interfaces are available
as a shared library, which can be compiled and linked to with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_randomize</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,94 +23,92 @@
<refentry id="sd_id128_randomize">
<refentryinfo>
<title>sd_id128_randomize</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_id128_randomize</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_id128_randomize</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_id128_randomize</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_id128_randomize</refname>
<refpurpose>Generate 128-bit IDs</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_id128_randomize</refname>
<refpurpose>Generate 128-bit IDs</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_id128_randomize</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_randomize</function></funcdef>
<paramdef>sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_id128_randomize()</function>
generates a new randomized 128-bit ID and returns it
in <parameter>ret</parameter>. Every invocation
returns a new randomly generated ID. This uses the
<filename>/dev/urandom</filename> kernel random number
generator.</para>
<para><function>sd_id128_randomize()</function> generates a new
randomized 128-bit ID and returns it in
<parameter>ret</parameter>. Every invocation returns a new
randomly generated ID. This uses the
<filename>/dev/urandom</filename> kernel random number
generator.</para>
<para>Note that
<function>sd_id128_randomize()</function> always returns
a UUID v4-compatible ID.</para>
<para>Note that <function>sd_id128_randomize()</function> always
returns a UUID v4-compatible ID.</para>
<para>For more information about the
<literal>sd_id128_t</literal> type, see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>For more information about the <literal>sd_id128_t</literal>
type, see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--new-id</option> option may be used as a
command line front-end for
<function>sd_id128_randomize()</function>.</para>
</refsect1>
<para><citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<option>--new-id</option> option may be used as a command line
front-end for <function>sd_id128_randomize()</function>.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The call returns 0 on success (in which
case <parameter>ret</parameter> is filled in), or a
negative errno-style error code.</para>
</refsect1>
<para>The call returns 0 on success (in which case
<parameter>ret</parameter> is filled in), or a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_id128_randomize()</function> interface
is available as a shared library, which can be compiled
and linked to with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_id128_randomize()</function> interface is
available as a shared library, which can be compiled and linked to
with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>random</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_machine</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,114 +23,110 @@
<refentry id="sd_id128_to_string">
<refentryinfo>
<title>sd_id128_to_string</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_id128_to_string</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_id128_to_string</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_id128_to_string</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_id128_to_string</refname>
<refname>sd_id128_from_string</refname>
<refpurpose>Format or parse 128-bit IDs as strings</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_id128_to_string</refname>
<refname>sd_id128_from_string</refname>
<refpurpose>Format or parse 128-bit IDs as strings</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-id128.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>char *<function>sd_id128_to_string</function></funcdef>
<paramdef>sd_id128_t <parameter>id</parameter>, char <parameter>s</parameter>[33]</paramdef>
</funcprototype>
<funcprototype>
<funcdef>char *<function>sd_id128_to_string</function></funcdef>
<paramdef>sd_id128_t <parameter>id</parameter>, char <parameter>s</parameter>[33]</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_from_string</function></funcdef>
<paramdef>const char *<parameter>s</parameter>, sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_id128_from_string</function></funcdef>
<paramdef>const char *<parameter>s</parameter>, sd_id128_t *<parameter>ret</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_id128_to_string()</function>
formats a 128-bit ID as a character string. It expects
the ID and a string array capable of storing 33
characters. The ID will be formatted as 32 lowercase
hexadecimal digits and be terminated by a
<constant>NUL</constant> byte.</para>
<para><function>sd_id128_to_string()</function> formats a 128-bit
ID as a character string. It expects the ID and a string array
capable of storing 33 characters. The ID will be formatted as 32
lowercase hexadecimal digits and be terminated by a
<constant>NUL</constant> byte.</para>
<para><function>sd_id128_from_string()</function>
implements the reverse operation: it takes a 33
character string with 32 hexadecimal digits (either
lowercase or uppercase, terminated by
<constant>NUL</constant>) and parses them back into a
128-bit ID returned in
<parameter>ret</parameter>. Alternatively, this call
can also parse a 37-character string with a 128-bit ID
formatted as RFC UUID.</para>
<para><function>sd_id128_from_string()</function> implements the
reverse operation: it takes a 33 character string with 32
hexadecimal digits (either lowercase or uppercase, terminated by
<constant>NUL</constant>) and parses them back into a 128-bit ID
returned in <parameter>ret</parameter>. Alternatively, this call
can also parse a 37-character string with a 128-bit ID formatted
as RFC UUID.</para>
<para>For more information about the
<literal>sd_id128_t</literal> type see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Note
that these calls operate the same way on all
architectures, i.e. the results do not depend on
endianness.</para>
<para>For more information about the <literal>sd_id128_t</literal>
type see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
Note that these calls operate the same way on all architectures,
i.e. the results do not depend on endianness.</para>
<para>When formatting a 128-bit ID into a string, it is
often easier to use a format string for
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>. This
is easily done using the
<function>SD_ID128_FORMAT_STR</function> and
<function>SD_ID128_FORMAT_VAL()</function> macros. For
more information see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
</refsect1>
<para>When formatting a 128-bit ID into a string, it is often
easier to use a format string for
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
This is easily done using the
<function>SD_ID128_FORMAT_STR</function> and
<function>SD_ID128_FORMAT_VAL()</function> macros. For more
information see
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_id128_to_string()</function> always
succeeds and returns a pointer to the string array
passed in. <function>sd_id128_from_string</function>
returns 0 on success, in which case
<parameter>ret</parameter> is filled in, or a negative
errno-style error code.</para>
</refsect1>
<para><function>sd_id128_to_string()</function> always succeeds
and returns a pointer to the string array passed in.
<function>sd_id128_from_string</function> returns 0 on success, in
which case <parameter>ret</parameter> is filled in, or a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_id128_to_string()</function>
and <function>sd_id128_from_string()</function> interfaces are
available as a shared library, which can be compiled and
linked to with the <literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_id128_to_string()</function> and
<function>sd_id128_from_string()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<literal>libsystemd</literal> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-id128</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,187 +22,179 @@
-->
<refentry id="sd_is_fifo"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_is_fifo</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_is_fifo</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_is_fifo</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_is_fifo</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_is_fifo</refname>
<refname>sd_is_socket</refname>
<refname>sd_is_socket_inet</refname>
<refname>sd_is_socket_unix</refname>
<refname>sd_is_mq</refname>
<refname>sd_is_special</refname>
<refpurpose>Check the type of a file descriptor</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_is_fifo</refname>
<refname>sd_is_socket</refname>
<refname>sd_is_socket_inet</refname>
<refname>sd_is_socket_unix</refname>
<refname>sd_is_mq</refname>
<refname>sd_is_special</refname>
<refpurpose>Check the type of a file descriptor</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_is_fifo</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_fifo</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>family</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>family</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket_inet</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>family</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
<paramdef>uint16_t <parameter>port</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket_inet</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>family</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
<paramdef>uint16_t <parameter>port</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket_unix</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_socket_unix</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>int <parameter>type</parameter></paramdef>
<paramdef>int <parameter>listening</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_mq</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_mq</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_special</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_is_special</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_is_fifo()</function> may be called
to check whether the specified file descriptor refers
to a FIFO or pipe. If the <parameter>path</parameter>
parameter is not <constant>NULL</constant>, it is
checked whether the FIFO is bound to the specified
file system path.</para>
<para><function>sd_is_fifo()</function> may be called to check
whether the specified file descriptor refers to a FIFO or pipe. If
the <parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the FIFO is bound
to the specified file system path.</para>
<para><function>sd_is_socket()</function> may be
called to check whether the specified file descriptor
refers to a socket. If the
<parameter>family</parameter> parameter is not
<constant>AF_UNSPEC</constant>, it is checked whether
the socket is of the specified family (AF_UNIX,
<constant>AF_INET</constant>, ...). If the
<parameter>type</parameter> parameter is not 0, it is
checked whether the socket is of the specified type
(<constant>SOCK_STREAM</constant>,
<constant>SOCK_DGRAM</constant>, ...). If the
<parameter>listening</parameter> parameter is positive,
it is checked whether the socket is in accepting mode,
i.e. <function>listen()</function> has been called for
it. If <parameter>listening</parameter> is 0, it is
checked whether the socket is not in this mode. If the
parameter is negative, no such check is made. The
<parameter>listening</parameter> parameter should only
be used for stream sockets and should be set to a
negative value otherwise.</para>
<para><function>sd_is_socket()</function> may be called to check
whether the specified file descriptor refers to a socket. If the
<parameter>family</parameter> parameter is not
<constant>AF_UNSPEC</constant>, it is checked whether the socket
is of the specified family (AF_UNIX, <constant>AF_INET</constant>,
...). If the <parameter>type</parameter> parameter is not 0, it is
checked whether the socket is of the specified type
(<constant>SOCK_STREAM</constant>,
<constant>SOCK_DGRAM</constant>, ...). If the
<parameter>listening</parameter> parameter is positive, it is
checked whether the socket is in accepting mode, i.e.
<function>listen()</function> has been called for it. If
<parameter>listening</parameter> is 0, it is checked whether the
socket is not in this mode. If the parameter is negative, no such
check is made. The <parameter>listening</parameter> parameter
should only be used for stream sockets and should be set to a
negative value otherwise.</para>
<para><function>sd_is_socket_inet()</function> is
similar to <function>sd_is_socket()</function>, but
optionally checks the IPv4 or IPv6 port number the
socket is bound to, unless <parameter>port</parameter>
is zero. For this call <parameter>family</parameter>
must be passed as either <constant>AF_UNSPEC</constant>, <constant>AF_INET</constant>, or
<constant>AF_INET6</constant>.</para>
<para><function>sd_is_socket_inet()</function> is similar to
<function>sd_is_socket()</function>, but optionally checks the
IPv4 or IPv6 port number the socket is bound to, unless
<parameter>port</parameter> is zero. For this call
<parameter>family</parameter> must be passed as either
<constant>AF_UNSPEC</constant>, <constant>AF_INET</constant>, or
<constant>AF_INET6</constant>.</para>
<para><function>sd_is_socket_unix()</function> is
similar to <function>sd_is_socket()</function> but
optionally checks the <constant>AF_UNIX</constant> path the socket is bound
to, unless the <parameter>path</parameter> parameter
is <constant>NULL</constant>. For normal file system <constant>AF_UNIX</constant> sockets,
set the <parameter>length</parameter> parameter to 0. For
Linux abstract namespace sockets, set the
<parameter>length</parameter> to the size of the
address, including the initial 0 byte, and set the
<parameter>path</parameter> to the initial 0 byte of
the socket address.</para>
<para><function>sd_is_socket_unix()</function> is similar to
<function>sd_is_socket()</function> but optionally checks the
<constant>AF_UNIX</constant> path the socket is bound to, unless
the <parameter>path</parameter> parameter is
<constant>NULL</constant>. For normal file system
<constant>AF_UNIX</constant> sockets, set the
<parameter>length</parameter> parameter to 0. For Linux abstract
namespace sockets, set the <parameter>length</parameter> to the
size of the address, including the initial 0 byte, and set the
<parameter>path</parameter> to the initial 0 byte of the socket
address.</para>
<para><function>sd_is_mq()</function> may be called to
check whether the specified file descriptor refers to
a POSIX message queue. If the
<parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the
message queue is bound to the specified name.</para>
<para><function>sd_is_mq()</function> may be called to check
whether the specified file descriptor refers to a POSIX message
queue. If the <parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the message queue
is bound to the specified name.</para>
<para><function>sd_is_special()</function> may be
called to check whether the specified file descriptor
refers to a special file. If the
<parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the file
descriptor is bound to the specified file
name. Special files in this context are character
device nodes and files in <filename>/proc</filename>
or <filename>/sys</filename>.</para>
</refsect1>
<para><function>sd_is_special()</function> may be called to check
whether the specified file descriptor refers to a special file. If
the <parameter>path</parameter> parameter is not
<constant>NULL</constant>, it is checked whether the file
descriptor is bound to the specified file name. Special files in
this context are character device nodes and files in
<filename>/proc</filename> or <filename>/sys</filename>.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On failure, these calls return a negative
errno-style error code. If the file descriptor is of
the specified type and bound to the specified address,
a positive return value is returned, otherwise
zero.</para>
</refsect1>
<para>On failure, these calls return a negative errno-style error
code. If the file descriptor is of the specified type and bound to
the specified address, a positive return value is returned,
otherwise zero.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<para>Internally, these function use a combination of
<filename>fstat()</filename> and
<filename>getsockname()</filename> to check the file
descriptor type and where it is bound to.</para>
</refsect1>
<para>Internally, these function use a combination of
<filename>fstat()</filename> and
<filename>getsockname()</filename> to check the file descriptor
type and where it is bound to.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,198 +23,186 @@
<refentry id="sd_journal_add_match">
<refentryinfo>
<title>sd_journal_add_match</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_add_match</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_add_match</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_add_match</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_add_match</refname>
<refname>sd_journal_add_disjunction</refname>
<refname>sd_journal_add_conjunction</refname>
<refname>sd_journal_flush_matches</refname>
<refpurpose>Add or remove entry matches</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_add_match</refname>
<refname>sd_journal_add_disjunction</refname>
<refname>sd_journal_add_conjunction</refname>
<refname>sd_journal_flush_matches</refname>
<refpurpose>Add or remove entry matches</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_add_match</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>size</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_add_match</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>size</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_add_disjunction</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_add_disjunction</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_add_conjunction</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_add_conjunction</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_flush_matches</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>void <function>sd_journal_flush_matches</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_add_match()</function> adds
a match by which to filter the entries of the journal
file. Matches applied with this call will filter what
can be iterated through and read from the journal file
via calls like
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Matches
are of the form <literal>FIELD=value</literal>, where
the field part is a short uppercase string consisting
only of 0-9, A-Z and the underscore. It may not begin
with two underscores or be the empty string. The value
part may be any value, including binary. If a match is
applied, only entries with this field set will be
iterated. Multiple matches may be active at the same
time: If they apply to different fields, only entries
with both fields set like this will be iterated. If
they apply to the same fields, only entries where the
field takes one of the specified values will be
iterated. Well known fields are documented in
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Whenever
a new match is added the current entry position is
reset, and
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry> (or a similar call)
needs to be called before entries can be read
again.</para>
<para><function>sd_journal_add_match()</function> adds a match by
which to filter the entries of the journal file. Matches applied
with this call will filter what can be iterated through and read
from the journal file via calls like
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
Matches are of the form <literal>FIELD=value</literal>, where the
field part is a short uppercase string consisting only of 0-9, A-Z
and the underscore. It may not begin with two underscores or be
the empty string. The value part may be any value, including
binary. If a match is applied, only entries with this field set
will be iterated. Multiple matches may be active at the same time:
If they apply to different fields, only entries with both fields
set like this will be iterated. If they apply to the same fields,
only entries where the field takes one of the specified values
will be iterated. Well known fields are documented in
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
Whenever a new match is added the current entry position is reset,
and
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or a similar call) needs to be called before entries can be read
again.</para>
<para><function>sd_journal_add_disjunction()</function>
may be used to insert a disjunction (i.e. logical OR)
in the match list. If this call is invoked, all
previously added matches since the last invocation of
<function>sd_journal_add_disjunction()</function> or
<function>sd_journal_add_conjunction()</function> are
combined in an OR with all matches added afterwards,
until
<function>sd_journal_add_disjunction()</function> or
<function>sd_journal_add_conjunction()</function> is
invoked again to begin the next OR or AND
term. </para>
<para><function>sd_journal_add_disjunction()</function> may be
used to insert a disjunction (i.e. logical OR) in the match list.
If this call is invoked, all previously added matches since the
last invocation of
<function>sd_journal_add_disjunction()</function> or
<function>sd_journal_add_conjunction()</function> are combined in
an OR with all matches added afterwards, until
<function>sd_journal_add_disjunction()</function> or
<function>sd_journal_add_conjunction()</function> is invoked again
to begin the next OR or AND term. </para>
<para><function>sd_journal_add_conjunction()</function>
may be used to insert a conjunction (i.e. logical AND)
in the match list. If this call is invoked, all
previously added matches since the last invocation of
<function>sd_journal_add_conjunction()</function> are
combined in an AND with all matches added afterwards,
until
<function>sd_journal_add_conjunction()</function> is
invoked again to begin the next AND term. The
combination of
<function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function> and
<function>sd_journal_add_conjunction()</function> may
be used to build complex search terms, even though
full logical expressions are not available. Note that
<function>sd_journal_add_conjunction()</function>
operates one level 'higher' than
<function>sd_journal_add_disjunction()</function>. It
is hence possible to build an expression of AND terms,
consisting of OR terms, consisting of AND terms,
consisting of OR terms of matches (the latter OR
expression is implicitly created for matches with the
same field name, see above).</para>
<para><function>sd_journal_add_conjunction()</function> may be
used to insert a conjunction (i.e. logical AND) in the match list.
If this call is invoked, all previously added matches since the
last invocation of
<function>sd_journal_add_conjunction()</function> are combined in
an AND with all matches added afterwards, until
<function>sd_journal_add_conjunction()</function> is invoked again
to begin the next AND term. The combination of
<function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function> and
<function>sd_journal_add_conjunction()</function> may be used to
build complex search terms, even though full logical expressions
are not available. Note that
<function>sd_journal_add_conjunction()</function> operates one
level 'higher' than
<function>sd_journal_add_disjunction()</function>. It is hence
possible to build an expression of AND terms, consisting of OR
terms, consisting of AND terms, consisting of OR terms of matches
(the latter OR expression is implicitly created for matches with
the same field name, see above).</para>
<para><function>sd_journal_flush_matches()</function>
may be used to flush all matches, disjunction and
conjunction terms again. After this call all filtering
is removed and all entries in the journal will be
iterated again.</para>
<para><function>sd_journal_flush_matches()</function> may be used
to flush all matches, disjunction and conjunction terms again.
After this call all filtering is removed and all entries in the
journal will be iterated again.</para>
<para>Note that filtering via matches only applies to
the way the journal is read, it has no effect on storage
on disk.</para>
</refsect1>
<para>Note that filtering via matches only applies to the way the
journal is read, it has no effect on storage on disk.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function> and
<function>sd_journal_add_conjunction()</function>
return 0 on success or a negative errno-style error
code. <function>sd_journal_flush_matches()</function>
returns nothing.</para>
</refsect1>
<para><function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function> and
<function>sd_journal_add_conjunction()</function>
return 0 on success or a negative errno-style error
code. <function>sd_journal_flush_matches()</function>
returns nothing.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function>,
<function>sd_journal_add_conjunction()</function> and
<function>sd_journal_flush_matches()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_add_match()</function>,
<function>sd_journal_add_disjunction()</function>,
<function>sd_journal_add_conjunction()</function> and
<function>sd_journal_flush_matches()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>The following example adds matches to a journal
context object to iterate only through messages
generated by the Avahi service at the four error log
levels, plus all messages of the message ID
03bb1dab98ab4ecfbf6fff2738bdd964 coming from any
service (this example lacks the necessary error
checking):</para>
<para>The following example adds matches to a journal context
object to iterate only through messages generated by the Avahi
service at the four error log levels, plus all messages of the
message ID 03bb1dab98ab4ecfbf6fff2738bdd964 coming from any
service (this example lacks the necessary error checking):</para>
<programlisting>...
<programlisting>...
int add_matches(sd_journal *j) {
sd_journal_add_match(j, "_SYSTEMD_UNIT=avahi-daemon.service", 0);
sd_journal_add_match(j, "PRIORITY=0", 0);
sd_journal_add_match(j, "PRIORITY=1", 0);
sd_journal_add_match(j, "PRIORITY=2", 0);
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
sd_journal_add_match(j, "_SYSTEMD_UNIT=avahi-daemon.service", 0);
sd_journal_add_match(j, "PRIORITY=0", 0);
sd_journal_add_match(j, "PRIORITY=1", 0);
sd_journal_add_match(j, "PRIORITY=2", 0);
sd_journal_add_match(j, "PRIORITY=3", 0);
sd_journal_add_disjunction(j);
sd_journal_add_match(j, "MESSAGE_ID=03bb1dab98ab4ecfbf6fff2738bdd964", 0);
}</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,119 +23,115 @@
<refentry id="sd_journal_get_catalog">
<refentryinfo>
<title>sd_journal_get_catalog</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_catalog</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_catalog</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_catalog</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_catalog</refname>
<refname>sd_journal_get_catalog_for_message_id</refname>
<refpurpose>Retrieve message catalog entry</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_catalog</refname>
<refname>sd_journal_get_catalog_for_message_id</refname>
<refpurpose>Retrieve message catalog entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_catalog</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>char **<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_catalog</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>char **<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_catalog_for_message_id</function></funcdef>
<paramdef>sd_id128_t <parameter>id</parameter></paramdef>
<paramdef>char **<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_catalog_for_message_id</function></funcdef>
<paramdef>sd_id128_t <parameter>id</parameter></paramdef>
<paramdef>char **<parameter>ret</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_catalog()</function>
retrieves a message catalog entry for the current
journal entry. This will look up an entry in the
message catalog by using the
<literal>MESSAGE_ID=</literal> field of the current
journal entry. Before returning the entry all journal
field names in the catalog entry text enclosed in "@"
will be replaced by the respective field values of the
current entry. If a field name referenced in the
message catalog entry does not exist, in the current
journal entry, the "@" will be removed, but the field
name otherwise left untouched.</para>
<para><function>sd_journal_get_catalog()</function> retrieves a
message catalog entry for the current journal entry. This will
look up an entry in the message catalog by using the
<literal>MESSAGE_ID=</literal> field of the current journal entry.
Before returning the entry all journal field names in the catalog
entry text enclosed in "@" will be replaced by the respective
field values of the current entry. If a field name referenced in
the message catalog entry does not exist, in the current journal
entry, the "@" will be removed, but the field name otherwise left
untouched.</para>
<para><function>sd_journal_get_catalog_for_message_id()</function>
works similar to
<function>sd_journal_get_catalog()</function> but the
entry is looked up by the specified message ID (no
open journal context is necessary for this), and no
field substitution is performed.</para>
<para><function>sd_journal_get_catalog_for_message_id()</function>
works similar to <function>sd_journal_get_catalog()</function> but
the entry is looked up by the specified message ID (no open
journal context is necessary for this), and no field substitution
is performed.</para>
<para>For more information about the journal message
catalog please refer to the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Journal
Message Catalogs</ulink> documentation page.</para>
</refsect1>
<para>For more information about the journal message catalog
please refer to the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/catalog">Journal
Message Catalogs</ulink> documentation page.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_catalog()</function>
and
<function>sd_journal_get_catalog_for_message_id()</function>
return 0 on success or a negative errno-style error
code. If no matching message catalog entry is found,
-ENOENT is returned.</para>
<para><function>sd_journal_get_catalog()</function> and
<function>sd_journal_get_catalog_for_message_id()</function>
return 0 on success or a negative errno-style error code. If no
matching message catalog entry is found, -ENOENT is
returned.</para>
<para>On successful return, <parameter>ret</parameter>
points to a new string, which must be freed with
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
</para>
</refsect1>
<para>On successful return, <parameter>ret</parameter> points to a
new string, which must be freed with
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_get_catalog()</function> and
<function>sd_journal_get_catalog_for_message_id()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_catalog()</function> and
<function>sd_journal_get_catalog_for_message_id()</function>
interfaces are available as a shared library, which can be
compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>malloc</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>malloc</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,128 +23,122 @@
<refentry id="sd_journal_get_cursor">
<refentryinfo>
<title>sd_journal_get_cursor</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_cursor</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_cursor</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_cursor</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_cursor</refname>
<refname>sd_journal_test_cursor</refname>
<refpurpose>Get cursor string for or test cursor string against the current journal entry</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_cursor</refname>
<refname>sd_journal_test_cursor</refname>
<refpurpose>Get cursor string for or test cursor string against the current journal entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>char **<parameter>cursor</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>char **<parameter>cursor</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_test_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>cursor</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_test_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>cursor</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_cursor()</function>
returns a cursor string for the current journal
entry. A cursor is a serialization of the current
journal position formatted as text. The string only
contains printable characters and can be passed around
in text form. The cursor identifies a journal entry
globally and in a stable way and may be used to later
seek to it via
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>. The
cursor string should be considered opaque and not be
parsed by clients. Seeking to a cursor position
without the specific entry being available locally
will seek to the next closest (in terms of time)
available entry. The call takes two arguments: a
journal context object and a pointer to a string
pointer where the cursor string will be placed. The
string is allocated via libc
<citerefentry><refentrytitle>malloc</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and should be freed after use with
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para><function>sd_journal_get_cursor()</function> returns a
cursor string for the current journal entry. A cursor is a
serialization of the current journal position formatted as text.
The string only contains printable characters and can be passed
around in text form. The cursor identifies a journal entry
globally and in a stable way and may be used to later seek to it
via
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
The cursor string should be considered opaque and not be parsed by
clients. Seeking to a cursor position without the specific entry
being available locally will seek to the next closest (in terms of
time) available entry. The call takes two arguments: a journal
context object and a pointer to a string pointer where the cursor
string will be placed. The string is allocated via libc
<citerefentry><refentrytitle>malloc</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and should be freed after use with
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>Note that
<function>sd_journal_get_cursor()</function> will not
work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least once, in
order to position the read pointer at a valid
entry.</para>
<para>Note that <function>sd_journal_get_cursor()</function> will
not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least once, in order to
position the read pointer at a valid entry.</para>
<para><function>sd_journal_test_cursor()</function>
may be used to check whether the current position in
the journal matches the specified cursor. This is
useful since cursor strings do not uniquely identify
an entry: the same entry might be referred to by
multiple different cursor strings, and hence string
comparing cursors is not possible. Use this call to
verify after an invocation of
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
whether the entry being sought to was actually found
in the journal or the next closest entry was used
instead.</para>
</refsect1>
<para><function>sd_journal_test_cursor()</function>
may be used to check whether the current position in
the journal matches the specified cursor. This is
useful since cursor strings do not uniquely identify
an entry: the same entry might be referred to by
multiple different cursor strings, and hence string
comparing cursors is not possible. Use this call to
verify after an invocation of
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
whether the entry being sought to was actually found
in the journal or the next closest entry was used
instead.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_cursor()</function>
returns 0 on success or a negative errno-style error
code. <function>sd_journal_test_cursor()</function>
returns positive if the current entry matches the
specified cursor, 0 if it does not match the specified
cursor or a negative errno-style error code on
failure.</para>
</refsect1>
<para><function>sd_journal_get_cursor()</function> returns 0 on
success or a negative errno-style error code.
<function>sd_journal_test_cursor()</function> returns positive if
the current entry matches the specified cursor, 0 if it does not
match the specified cursor or a negative errno-style error code on
failure.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_get_cursor()</function>
and <function>sd_journal_test_cursor()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_cursor()</function> and
<function>sd_journal_test_cursor()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,132 +23,123 @@
<refentry id="sd_journal_get_cutoff_realtime_usec">
<refentryinfo>
<title>sd_journal_get_cutoff_realtime_usec</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_cutoff_realtime_usec</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_cutoff_realtime_usec</refname>
<refname>sd_journal_get_cutoff_monotonic_usec</refname>
<refpurpose>Read cut-off timestamps from the current journal entry</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_cutoff_realtime_usec</refname>
<refname>sd_journal_get_cutoff_monotonic_usec</refname>
<refpurpose>Read cut-off timestamps from the current journal entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_cutoff_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>from</parameter></paramdef>
<paramdef>uint64_t *<parameter>to</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_cutoff_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>from</parameter></paramdef>
<paramdef>uint64_t *<parameter>to</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_cutoff_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>sd_id128_t <parameter>boot_id</parameter></paramdef>
<paramdef>uint64_t *<parameter>from</parameter></paramdef>
<paramdef>uint64_t *<parameter>to</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_cutoff_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>sd_id128_t <parameter>boot_id</parameter></paramdef>
<paramdef>uint64_t *<parameter>from</parameter></paramdef>
<paramdef>uint64_t *<parameter>to</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_cutoff_realtime_usec()</function>
retrieves the realtime (wallclock) timestamps of the
first and last entries accessible in the journal. It
takes three arguments: the journal context object
<parameter>j</parameter> and two pointers
<parameter>from</parameter> and
<parameter>to</parameter> pointing at 64-bit unsigned
integers to store the timestamps in. The timestamps
are in microseconds since the epoch,
i.e. <constant>CLOCK_REALTIME</constant>. Either one
of the two timestamp arguments may be passed as
<constant>NULL</constant> in case the timestamp is not
needed, but not both.</para>
<para><function>sd_journal_get_cutoff_realtime_usec()</function>
retrieves the realtime (wallclock) timestamps of the first and
last entries accessible in the journal. It takes three arguments:
the journal context object <parameter>j</parameter> and two
pointers <parameter>from</parameter> and <parameter>to</parameter>
pointing at 64-bit unsigned integers to store the timestamps in.
The timestamps are in microseconds since the epoch, i.e.
<constant>CLOCK_REALTIME</constant>. Either one of the two
timestamp arguments may be passed as <constant>NULL</constant> in
case the timestamp is not needed, but not both.</para>
<para><function>sd_journal_get_cutoff_monotonic_usec()</function>
retrieves the monotonic timestamps of the first and
last entries accessible in the journal. It takes three
arguments: the journal context object
<parameter>j</parameter>, a 128-bit identifier for the
boot <parameter>boot_id</parameter>, and two pointers
to 64-bit unsigned integers to store the timestamps,
<parameter>from</parameter> and
<parameter>to</parameter>. The timestamps are in
microseconds since boot-up of the specific boot,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since the
monotonic clock begins new with every reboot it only
defines a well-defined point in time when used
together with an identifier identifying the boot, see
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information. The function will return the
timestamps for the boot identified by the passed boot
ID. Either one of the two timestamp arguments may be
passed as <constant>NULL</constant> in case the
timestamp is not needed, but not both.</para>
</refsect1>
<para><function>sd_journal_get_cutoff_monotonic_usec()</function>
retrieves the monotonic timestamps of the first and last entries
accessible in the journal. It takes three arguments: the journal
context object <parameter>j</parameter>, a 128-bit identifier for
the boot <parameter>boot_id</parameter>, and two pointers to
64-bit unsigned integers to store the timestamps,
<parameter>from</parameter> and <parameter>to</parameter>. The
timestamps are in microseconds since boot-up of the specific boot,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since the monotonic
clock begins new with every reboot it only defines a well-defined
point in time when used together with an identifier identifying
the boot, see
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information. The function will return the timestamps for
the boot identified by the passed boot ID. Either one of the two
timestamp arguments may be passed as <constant>NULL</constant> in
case the timestamp is not needed, but not both.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_cutoff_realtime_usec()</function>
and
<function>sd_journal_get_cutoff_monotonic_usec()</function>
return 1 on success, 0 if not suitable entries are in
the journal or a negative errno-style error code.</para>
<para><function>sd_journal_get_cutoff_realtime_usec()</function>
and <function>sd_journal_get_cutoff_monotonic_usec()</function>
return 1 on success, 0 if not suitable entries are in the journal
or a negative errno-style error code.</para>
<para>Locations pointed to by parameters
<parameter>from</parameter> and
<parameter>to</parameter> will be set only if the
return value is positive, and obviously, the
parameters are non-null.</para>
</refsect1>
<para>Locations pointed to by parameters
<parameter>from</parameter> and <parameter>to</parameter> will be
set only if the return value is positive, and obviously, the
parameters are non-null.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The
<function>sd_journal_get_cutoff_realtime_usec()</function>
and
<function>sd_journal_get_cutoff_monotonic_usec()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The
<function>sd_journal_get_cutoff_realtime_usec()</function> and
<function>sd_journal_get_cutoff_monotonic_usec()</function>
interfaces are available as a shared library, which can be
compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,228 +23,213 @@
<refentry id="sd_journal_get_data">
<refentryinfo>
<title>sd_journal_get_data</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_data</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_data</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_data</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_data</refname>
<refname>sd_journal_enumerate_data</refname>
<refname>sd_journal_restart_data</refname>
<refname>SD_JOURNAL_FOREACH_DATA</refname>
<refname>sd_journal_set_data_threshold</refname>
<refname>sd_journal_get_data_threshold</refname>
<refpurpose>Read data fields from the current journal entry</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_data</refname>
<refname>sd_journal_enumerate_data</refname>
<refname>sd_journal_restart_data</refname>
<refname>SD_JOURNAL_FOREACH_DATA</refname>
<refname>sd_journal_set_data_threshold</refname>
<refname>sd_journal_get_data_threshold</refname>
<refpurpose>Read data fields from the current journal entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>field</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>field</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_enumerate_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_enumerate_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_restart_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_restart_data</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_DATA</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_DATA</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_set_data_threshold</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>size_t <parameter>sz</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_set_data_threshold</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>size_t <parameter>sz</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_data_threshold</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>size_t *<parameter>sz</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_journal_get_data_threshold</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>size_t *<parameter>sz</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_data()</function> gets
the data object associated with a specific field from
the current journal entry. It takes four arguments:
the journal context object, a string with the field
name to request, plus a pair of pointers to
pointer/size variables where the data object and its
size shall be stored in. The field name should be an
entry field name. Well-known field names are listed in
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>. The
returned data is in a read-only memory map and is only
valid until the next invocation of
<function>sd_journal_get_data()</function> or
<function>sd_journal_enumerate_data()</function>, or
the read pointer is altered. Note that the data
returned will be prefixed with the field name and
'='. Also note that by default data fields larger than
64K might get truncated to 64K. This threshold may be
changed and turned off with
<function>sd_journal_set_data_threshold()</function> (see
below).</para>
<para><function>sd_journal_get_data()</function> gets the data
object associated with a specific field from the current journal
entry. It takes four arguments: the journal context object, a
string with the field name to request, plus a pair of pointers to
pointer/size variables where the data object and its size shall be
stored in. The field name should be an entry field name.
Well-known field names are listed in
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
The returned data is in a read-only memory map and is only valid
until the next invocation of
<function>sd_journal_get_data()</function> or
<function>sd_journal_enumerate_data()</function>, or the read
pointer is altered. Note that the data returned will be prefixed
with the field name and '='. Also note that by default data fields
larger than 64K might get truncated to 64K. This threshold may be
changed and turned off with
<function>sd_journal_set_data_threshold()</function> (see
below).</para>
<para><function>sd_journal_enumerate_data()</function>
may be used to iterate through all fields of the
current entry. On each invocation the data for the
next field is returned. The order of these fields is
not defined. The data returned is in the same format
as with <function>sd_journal_get_data()</function> and
also follows the same life-time semantics.</para>
<para><function>sd_journal_enumerate_data()</function> may be used
to iterate through all fields of the current entry. On each
invocation the data for the next field is returned. The order of
these fields is not defined. The data returned is in the same
format as with <function>sd_journal_get_data()</function> and also
follows the same life-time semantics.</para>
<para><function>sd_journal_restart_data()</function>
resets the data enumeration index to the beginning of
the entry. The next invocation of
<function>sd_journal_enumerate_data()</function> will return the first
field of the entry again.</para>
<para><function>sd_journal_restart_data()</function> resets the
data enumeration index to the beginning of the entry. The next
invocation of <function>sd_journal_enumerate_data()</function>
will return the first field of the entry again.</para>
<para>Note that the
<function>SD_JOURNAL_FOREACH_DATA()</function> macro
may be used as a handy wrapper around
<function>sd_journal_restart_data()</function> and
<function>sd_journal_enumerate_data()</function>.</para>
<para>Note that the <function>SD_JOURNAL_FOREACH_DATA()</function>
macro may be used as a handy wrapper around
<function>sd_journal_restart_data()</function> and
<function>sd_journal_enumerate_data()</function>.</para>
<para>Note that these functions will not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least
once, in order to position the read pointer at a valid entry.</para>
<para>Note that these functions will not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least once, in order to
position the read pointer at a valid entry.</para>
<para><function>sd_journal_set_data_threshold()</function>
may be used to change the data field size threshold
for data returned by
<function>sd_journal_get_data()</function>,
<function>sd_journal_enumerate_data()</function> and
<function>sd_journal_enumerate_unique()</function>. This
threshold is a hint only: it indicates that the client
program is interested only in the initial parts of the
data fields, up to the threshold in size -- but the
library might still return larger data objects. That
means applications should not rely exclusively on this
setting to limit the size of the data fields returned,
but need to apply a explicit size limit on the
returned data as well. This threshold defaults to 64K
by default. To retrieve the complete data fields this
threshold should be turned off by setting it to 0, so
that the library always returns the complete data
objects. It is recommended to set this threshold as
low as possible since this relieves the library from
having to decompress large compressed data objects in
full.</para>
<para><function>sd_journal_set_data_threshold()</function> may be
used to change the data field size threshold for data returned by
<function>sd_journal_get_data()</function>,
<function>sd_journal_enumerate_data()</function> and
<function>sd_journal_enumerate_unique()</function>. This threshold
is a hint only: it indicates that the client program is interested
only in the initial parts of the data fields, up to the threshold
in size -- but the library might still return larger data objects.
That means applications should not rely exclusively on this
setting to limit the size of the data fields returned, but need to
apply a explicit size limit on the returned data as well. This
threshold defaults to 64K by default. To retrieve the complete
data fields this threshold should be turned off by setting it to
0, so that the library always returns the complete data objects.
It is recommended to set this threshold as low as possible since
this relieves the library from having to decompress large
compressed data objects in full.</para>
<para><function>sd_journal_get_data_threshold()</function>
returns the currently configured data field size
threshold.</para>
</refsect1>
<para><function>sd_journal_get_data_threshold()</function> returns
the currently configured data field size threshold.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_data()</function>
returns 0 on success or a negative errno-style error
code. If the current entry does not include the
specified field, -ENOENT is returned. If
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
has not been called at least once, -EADDRNOTAVAIL is
returned. <function>sd_journal_enumerate_data()</function>
returns a positive integer if the next field has been
read, 0 when no more fields are known, or a negative
errno-style error
code. <function>sd_journal_restart_data()</function>
returns
nothing. <function>sd_journal_set_data_threshold()</function>
and <function>sd_journal_get_threshold()</function>
return 0 on success or a negative errno-style error
code.</para>
</refsect1>
<para><function>sd_journal_get_data()</function> returns 0 on
success or a negative errno-style error code. If the current entry
does not include the specified field, -ENOENT is returned. If
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
has not been called at least once, -EADDRNOTAVAIL is returned.
<function>sd_journal_enumerate_data()</function> returns a
positive integer if the next field has been read, 0 when no more
fields are known, or a negative errno-style error code.
<function>sd_journal_restart_data()</function> returns nothing.
<function>sd_journal_set_data_threshold()</function> and
<function>sd_journal_get_threshold()</function> return 0 on
success or a negative errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_get_data()</function>,
<function>sd_journal_enumerate_data()</function>,
<function>sd_journal_restart_data()</function>,
<function>sd_journal_set_data_threshold()</function>
and
<function>sd_journal_get_data_threshold()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_data()</function>,
<function>sd_journal_enumerate_data()</function>,
<function>sd_journal_restart_data()</function>,
<function>sd_journal_set_data_threshold()</function> and
<function>sd_journal_get_data_threshold()</function> interfaces
are available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>See
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for a complete example how to use
<function>sd_journal_get_data()</function>.</para>
<para>See
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for a complete example how to use
<function>sd_journal_get_data()</function>.</para>
<para>Use the
<function>SD_JOURNAL_FOREACH_DATA</function> macro to
iterate through all fields of the current journal
entry:</para>
<para>Use the
<function>SD_JOURNAL_FOREACH_DATA</function> macro to
iterate through all fields of the current journal
entry:</para>
<programlisting>...
<programlisting>...
int print_fields(sd_journal *j) {
const void *data;
size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
const void *data;
size_t length;
SD_JOURNAL_FOREACH_DATA(j, data, length)
printf("%.*s\n", (int) length, data);
}
...</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_query_unique</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,327 +23,310 @@
<refentry id="sd_journal_get_fd">
<refentryinfo>
<title>sd_journal_get_fd</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_fd</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_fd</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_fd</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_fd</refname>
<refname>sd_journal_get_events</refname>
<refname>sd_journal_get_timeout</refname>
<refname>sd_journal_process</refname>
<refname>sd_journal_wait</refname>
<refname>sd_journal_reliable_fd</refname>
<refname>SD_JOURNAL_NOP</refname>
<refname>SD_JOURNAL_APPEND</refname>
<refname>SD_JOURNAL_INVALIDATE</refname>
<refpurpose>Journal change notification
interface</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_fd</refname>
<refname>sd_journal_get_events</refname>
<refname>sd_journal_get_timeout</refname>
<refname>sd_journal_process</refname>
<refname>sd_journal_wait</refname>
<refname>sd_journal_reliable_fd</refname>
<refname>SD_JOURNAL_NOP</refname>
<refname>SD_JOURNAL_APPEND</refname>
<refname>SD_JOURNAL_INVALIDATE</refname>
<refpurpose>Journal change notification
interface</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_fd</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_fd</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_events</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_events</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_timeout</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>timeout_usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_timeout</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>timeout_usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_process</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_process</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_wait</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>timeout_usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_wait</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>timeout_usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_reliable_fd</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_reliable_fd</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_fd()</function> returns
a file descriptor that may be asynchronously polled in
an external event loop and is signaled as soon as the
journal changes, because new entries or files were
added, rotation took place, or files have been
deleted, and similar. The file descriptor is suitable
for usage in
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>. Use
<function>sd_journal_get_events()</function> for an
events mask to watch for. The call takes one argument:
the journal context object. Note that not all file
systems are capable of generating the necessary events
for wakeups from this file descriptor for changes to
be noticed immediately. In particular network files
systems do not generate suitable file change events in
all cases. Cases like this can be detected with
<function>sd_journal_reliable_fd()</function>,
below. <function>sd_journal_get_timeout()</function>
will ensure in these cases that wake-ups happen
frequently enough for changes to be noticed, although
with a certain latency.</para>
<para><function>sd_journal_get_fd()</function> returns a file
descriptor that may be asynchronously polled in an external event
loop and is signaled as soon as the journal changes, because new
entries or files were added, rotation took place, or files have
been deleted, and similar. The file descriptor is suitable for
usage in
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>.
Use <function>sd_journal_get_events()</function> for an events
mask to watch for. The call takes one argument: the journal
context object. Note that not all file systems are capable of
generating the necessary events for wakeups from this file
descriptor for changes to be noticed immediately. In particular
network files systems do not generate suitable file change events
in all cases. Cases like this can be detected with
<function>sd_journal_reliable_fd()</function>, below.
<function>sd_journal_get_timeout()</function> will ensure in these
cases that wake-ups happen frequently enough for changes to be
noticed, although with a certain latency.</para>
<para><function>sd_journal_get_events()</function>
will return the <function>poll()</function> mask to
wait for. This function will return a combination of
<constant>POLLIN</constant> and
<constant>POLLOUT</constant> and similar to fill into
the <literal>.events</literal> field of
<varname>struct pollfd</varname>.</para>
<para><function>sd_journal_get_events()</function> will return the
<function>poll()</function> mask to wait for. This function will
return a combination of <constant>POLLIN</constant> and
<constant>POLLOUT</constant> and similar to fill into the
<literal>.events</literal> field of <varname>struct
pollfd</varname>.</para>
<para><function>sd_journal_get_timeout()</function>
will return a timeout value for usage in
<function>poll()</function>. This returns a value in
microseconds since the epoch of
<constant>CLOCK_MONOTONIC</constant> for timing out
<function>poll()</function> in
<varname>timeout_usec</varname>. See
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details about
<constant>CLOCK_MONOTONIC</constant>. If there is no
timeout to wait for, this will fill in
<constant>(uint64_t) -1</constant> instead. Note that
<function>poll()</function> takes a relative timeout
in milliseconds rather than an absolute timeout in
microseconds. To convert the absolute 'us' timeout
into relative 'ms', use code like the
following:</para>
<para><function>sd_journal_get_timeout()</function> will return a
timeout value for usage in <function>poll()</function>. This
returns a value in microseconds since the epoch of
<constant>CLOCK_MONOTONIC</constant> for timing out
<function>poll()</function> in <varname>timeout_usec</varname>.
See
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details about <constant>CLOCK_MONOTONIC</constant>. If there
is no timeout to wait for, this will fill in <constant>(uint64_t)
-1</constant> instead. Note that <function>poll()</function> takes
a relative timeout in milliseconds rather than an absolute timeout
in microseconds. To convert the absolute 'us' timeout into
relative 'ms', use code like the following:</para>
<programlisting>uint64_t t;
<programlisting>uint64_t t;
int msec;
sd_journal_get_timeout(m, &amp;t);
if (t == (uint64_t) -1)
msec = -1;
msec = -1;
else {
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
}</programlisting>
<para>The code above does not do any error checking
for brevity's sake. The calculated <varname>msec</varname>
integer can be passed directly as
<function>poll()</function>'s timeout
parameter.</para>
<para>The code above does not do any error checking for brevity's
sake. The calculated <varname>msec</varname> integer can be passed
directly as <function>poll()</function>'s timeout
parameter.</para>
<para>After each <function>poll()</function> wake-up
<function>sd_journal_process()</function> needs to be
called to process events. This call will also indicate
what kind of change has been detected (see below; note
that spurious wake-ups are possible).</para>
<para>After each <function>poll()</function> wake-up
<function>sd_journal_process()</function> needs to be called to
process events. This call will also indicate what kind of change
has been detected (see below; note that spurious wake-ups are
possible).</para>
<para>A synchronous alternative for using
<function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_get_timeout()</function> and
<function>sd_journal_process()</function> is
<function>sd_journal_wait()</function>. It will
synchronously wait until the journal gets changed. The
maximum time this call sleeps may be controlled with
the <parameter>timeout_usec</parameter>
parameter. Pass <constant>(uint64_t) -1</constant> to
wait indefinitely. Internally this call simply
combines <function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_get_timeout()</function>,
<function>poll()</function> and
<function>sd_journal_process()</function> into
one.</para>
<para>A synchronous alternative for using
<function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_get_timeout()</function> and
<function>sd_journal_process()</function> is
<function>sd_journal_wait()</function>. It will synchronously wait
until the journal gets changed. The maximum time this call sleeps
may be controlled with the <parameter>timeout_usec</parameter>
parameter. Pass <constant>(uint64_t) -1</constant> to wait
indefinitely. Internally this call simply combines
<function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_get_timeout()</function>,
<function>poll()</function> and
<function>sd_journal_process()</function> into one.</para>
<para><function>sd_journal_reliable_fd()</function>
may be used to check whether the wakeup events from
the file descriptor returned by
<function>sd_journal_get_fd()</function> are known to
be immediately triggered. On certain file systems
where file change events from the OS are not available
(such as NFS) changes need to be polled for
repeatedly, and hence are detected only with a certain
latency. This call will return a positive value if the
journal changes are detected immediately and zero when
they need to be polled for and hence might be noticed
only with a certain latency. Note that there's usually
no need to invoke this function directly as
<function>sd_journal_get_timeout()</function> on these
file systems will ask for timeouts explicitly
anyway.</para>
</refsect1>
<para><function>sd_journal_reliable_fd()</function> may be used to
check whether the wakeup events from the file descriptor returned
by <function>sd_journal_get_fd()</function> are known to be
immediately triggered. On certain file systems where file change
events from the OS are not available (such as NFS) changes need to
be polled for repeatedly, and hence are detected only with a
certain latency. This call will return a positive value if the
journal changes are detected immediately and zero when they need
to be polled for and hence might be noticed only with a certain
latency. Note that there's usually no need to invoke this function
directly as <function>sd_journal_get_timeout()</function> on these
file systems will ask for timeouts explicitly anyway.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_fd()</function> returns
a valid file descriptor on success or a negative
errno-style error code.</para>
<para><function>sd_journal_get_fd()</function> returns a valid
file descriptor on success or a negative errno-style error
code.</para>
<para><function>sd_journal_get_events()</function>
returns a combination of <constant>POLLIN</constant>,
<constant>POLLOUT</constant> and suchlike on success or
a negative errno-style error code.</para>
<para><function>sd_journal_get_events()</function> returns a
combination of <constant>POLLIN</constant>,
<constant>POLLOUT</constant> and suchlike on success or a negative
errno-style error code.</para>
<para><function>sd_journal_reliable_fd()</function>
returns a positive integer if the file descriptor
returned by <function>sd_journal_get_fd()</function>
will generate wake-ups immediately for all journal
changes. Returns 0 if there might be a latency
involved.</para>
<para><function>sd_journal_reliable_fd()</function> returns a
positive integer if the file descriptor returned by
<function>sd_journal_get_fd()</function> will generate wake-ups
immediately for all journal changes. Returns 0 if there might be a
latency involved.</para>
<para><function>sd_journal_process()</function> and
<function>sd_journal_wait()</function> return one of
<constant>SD_JOURNAL_NOP</constant>,
<constant>SD_JOURNAL_APPEND</constant> or
<constant>SD_JOURNAL_INVALIDATE</constant> on success or
a negative errno-style error code. If
<constant>SD_JOURNAL_NOP</constant> is returned, the
journal did not change since the last invocation. If
<constant>SD_JOURNAL_APPEND</constant> is returned, new
entries have been appended to the end of the
journal. If <constant>SD_JOURNAL_INVALIDATE</constant>,
journal files were added or removed (possibly due to
rotation). In the latter event, live-view UIs should
probably refresh their entire display, while in the
case of <constant>SD_JOURNAL_APPEND</constant>, it is
sufficient to simply continue reading at the previous
end of the journal.</para>
</refsect1>
<para><function>sd_journal_process()</function> and
<function>sd_journal_wait()</function> return one of
<constant>SD_JOURNAL_NOP</constant>,
<constant>SD_JOURNAL_APPEND</constant> or
<constant>SD_JOURNAL_INVALIDATE</constant> on success or a
negative errno-style error code. If
<constant>SD_JOURNAL_NOP</constant> is returned, the journal did
not change since the last invocation. If
<constant>SD_JOURNAL_APPEND</constant> is returned, new entries
have been appended to the end of the journal. If
<constant>SD_JOURNAL_INVALIDATE</constant>, journal files were
added or removed (possibly due to rotation). In the latter event,
live-view UIs should probably refresh their entire display, while
in the case of <constant>SD_JOURNAL_APPEND</constant>, it is
sufficient to simply continue reading at the previous end of the
journal.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_reliable_fd()</function>,
<function>sd_journal_process()</function> and
<function>sd_journal_wait()</function> interfaces are
available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_fd()</function>,
<function>sd_journal_get_events()</function>,
<function>sd_journal_reliable_fd()</function>,
<function>sd_journal_process()</function> and
<function>sd_journal_wait()</function> interfaces are available as
a shared library, which can be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>Iterating through the journal, in a live view tracking all changes:</para>
<para>Iterating through the journal, in a live view tracking all
changes:</para>
<programlisting>#include &lt;stdio.h&gt;
<programlisting>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;systemd/sd-journal.h&gt;
int main(int argc, char *argv[]) {
int r;
sd_journal *j;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
for (;;) {
const void *d;
size_t l;
r = sd_journal_next(j);
if (r &lt; 0) {
fprintf(stderr, "Failed to iterate to next entry: %s\n", strerror(-r));
break;
}
if (r == 0) {
/* Reached the end, let's wait for changes, and try again */
r = sd_journal_wait(j, (uint64_t) -1);
if (r &lt; 0) {
fprintf(stderr, "Failed to wait for changes: %s\n", strerror(-r));
break;
}
continue;
}
r = sd_journal_get_data(j, "MESSAGE", &amp;d, &amp;l);
if (r &lt; 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
printf("%.*s\n", (int) l, (const char*) d);
}
sd_journal_close(j);
return 0;
int r;
sd_journal *j;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
for (;;) {
const void *d;
size_t l;
r = sd_journal_next(j);
if (r &lt; 0) {
fprintf(stderr, "Failed to iterate to next entry: %s\n", strerror(-r));
break;
}
if (r == 0) {
/* Reached the end, let's wait for changes, and try again */
r = sd_journal_wait(j, (uint64_t) -1);
if (r &lt; 0) {
fprintf(stderr, "Failed to wait for changes: %s\n", strerror(-r));
break;
}
continue;
}
r = sd_journal_get_data(j, "MESSAGE", &amp;d, &amp;l);
if (r &lt; 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
printf("%.*s\n", (int) l, (const char*) d);
}
sd_journal_close(j);
return 0;
}</programlisting>
<para>Waiting with <function>poll()</function> (this
example lacks all error checking for the sake of
simplicity):</para>
<para>Waiting with <function>poll()</function> (this
example lacks all error checking for the sake of
simplicity):</para>
<programlisting>#include &lt;sys/poll.h&gt;
<programlisting>#include &lt;sys/poll.h&gt;
#include &lt;systemd/sd-journal.h&gt;
int wait_for_changes(sd_journal *j) {
struct pollfd pollfd;
int msec;
struct pollfd pollfd;
int msec;
sd_journal_get_timeout(m, &amp;t);
if (t == (uint64_t) -1)
msec = -1;
else {
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
}
sd_journal_get_timeout(m, &amp;t);
if (t == (uint64_t) -1)
msec = -1;
else {
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
}
pollfd.fd = sd_journal_get_fd(j);
pollfd.events = sd_journal_get_events(j);
poll(&amp;pollfd, 1, msec);
return sd_journal_process(j);
pollfd.fd = sd_journal_get_fd(j);
pollfd.events = sd_journal_get_events(j);
poll(&amp;pollfd, 1, msec);
return sd_journal_process(j);
}</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,124 +23,119 @@
<refentry id="sd_journal_get_realtime_usec">
<refentryinfo>
<title>sd_journal_get_realtime_usec</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_realtime_usec</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_realtime_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_realtime_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_realtime_usec</refname>
<refname>sd_journal_get_monotonic_usec</refname>
<refpurpose>Read timestamps from the current journal entry</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_realtime_usec</refname>
<refname>sd_journal_get_monotonic_usec</refname>
<refpurpose>Read timestamps from the current journal entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
<paramdef>sd_id128_t *<parameter>boot_id</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
<paramdef>sd_id128_t *<parameter>boot_id</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_realtime_usec()</function>
gets the realtime (wallclock) timestamp of the
current journal entry. It takes two arguments: the
journal context object and a pointer to a 64-bit
unsigned integer to store the timestamp in. The
timestamp is in microseconds since the epoch,
i.e. <constant>CLOCK_REALTIME</constant>.</para>
<para><function>sd_journal_get_realtime_usec()</function> gets the
realtime (wallclock) timestamp of the current journal entry. It
takes two arguments: the journal context object and a pointer to a
64-bit unsigned integer to store the timestamp in. The timestamp
is in microseconds since the epoch, i.e.
<constant>CLOCK_REALTIME</constant>.</para>
<para><function>sd_journal_get_monotonic_usec()</function>
gets the monotonic timestamp of the current journal
entry. It takes three arguments: the journal context
object, a pointer to a 64-bit unsigned integer to
store the timestamp in, as well as a 128-bit ID buffer
to store the boot ID of the monotonic timestamp.
The timestamp is in microseconds since boot-up of
the specific boot,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since the
monotonic clock begins new with every reboot, it only
defines a well-defined point in time when used
together with an identifier identifying the boot. See
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information. If the boot ID parameter is
passed <constant>NULL</constant>, the function will
fail if the monotonic timestamp of the current entry
is not of the current system boot.</para>
<para><function>sd_journal_get_monotonic_usec()</function> gets
the monotonic timestamp of the current journal entry. It takes
three arguments: the journal context object, a pointer to a 64-bit
unsigned integer to store the timestamp in, as well as a 128-bit
ID buffer to store the boot ID of the monotonic timestamp. The
timestamp is in microseconds since boot-up of the specific boot,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since the monotonic
clock begins new with every reboot, it only defines a well-defined
point in time when used together with an identifier identifying
the boot. See
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information. If the boot ID parameter is passed
<constant>NULL</constant>, the function will fail if the monotonic
timestamp of the current entry is not of the current system
boot.</para>
<para>Note that these functions will not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least
once, in order to position the read pointer at a valid entry.</para>
</refsect1>
<para>Note that these functions will not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least
once, in order to position the read pointer at a valid entry.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_realtime_usec()</function>
and
<function>sd_journal_get_monotonic_usec()</function>
returns 0 on success or a negative errno-style error
code. If the boot ID parameter was passed <constant>NULL</constant> and the
monotonic timestamp of the current journal entry is
not of the current system boot, -ESTALE is returned by <function>sd_journal_get_monotonic_usec()</function>.</para>
</refsect1>
<para><function>sd_journal_get_realtime_usec()</function> and
<function>sd_journal_get_monotonic_usec()</function> returns 0 on
success or a negative errno-style error code. If the boot ID
parameter was passed <constant>NULL</constant> and the monotonic
timestamp of the current journal entry is not of the current
system boot, <constant>-ESTALE</constant> is returned by
<function>sd_journal_get_monotonic_usec()</function>.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The
<function>sd_journal_get_realtime_usec()</function>
and
<function>sd_journal_get_monotonic_usec()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_realtime_usec()</function> and
<function>sd_journal_get_monotonic_usec()</function> interfaces
are available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,81 +23,78 @@
<refentry id="sd_journal_get_usage">
<refentryinfo>
<title>sd_journal_get_usage</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_get_usage</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_usage</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_get_usage</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_usage</refname>
<refpurpose>Journal disk usage</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_get_usage</refname>
<refpurpose>Journal disk usage</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_usage</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>bytes</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_usage</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>bytes</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_usage()</function>
determines the total disk space currently used by
journal files (in bytes). If
<constant>SD_JOURNAL_LOCAL_ONLY</constant> was passed
when opening the journal, this value will only reflect
the size of journal files of the local host, otherwise
of all hosts.</para>
</refsect1>
<para><function>sd_journal_get_usage()</function> determines the
total disk space currently used by journal files (in bytes). If
<constant>SD_JOURNAL_LOCAL_ONLY</constant> was passed when opening
the journal, this value will only reflect the size of journal
files of the local host, otherwise of all hosts.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_usage()</function>
returns 0 on success or a negative errno-style error
code.</para>
</refsect1>
<para><function>sd_journal_get_usage()</function> returns 0 on
success or a negative errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_get_usage()</function>
interface is available as a shared library, which can be
compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_get_usage()</function> interface is
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,191 +23,185 @@
<refentry id="sd_journal_next">
<refentryinfo>
<title>sd_journal_next</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_next</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_next</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_next</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_next</refname>
<refname>sd_journal_previous</refname>
<refname>sd_journal_next_skip</refname>
<refname>sd_journal_previous_skip</refname>
<refname>SD_JOURNAL_FOREACH</refname>
<refname>SD_JOURNAL_FOREACH_BACKWARDS</refname>
<refpurpose>Advance or set back the read pointer in the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_next</refname>
<refname>sd_journal_previous</refname>
<refname>sd_journal_next_skip</refname>
<refname>sd_journal_previous_skip</refname>
<refname>SD_JOURNAL_FOREACH</refname>
<refname>SD_JOURNAL_FOREACH_BACKWARDS</refname>
<refpurpose>Advance or set back the read pointer in the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_next</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_next</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_previous</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_previous</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_next_skip</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>skip</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_next_skip</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>skip</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_previous_skip</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>skip</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_previous_skip</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>skip</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_BACKWARDS</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_BACKWARDS</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_next()</function> advances
the read pointer into the journal by one entry. The
only argument taken is a journal context object as
allocated via
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>. After
successful invocation the entry may be read with
functions such as
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para><function>sd_journal_next()</function> advances the read
pointer into the journal by one entry. The only argument taken is
a journal context object as allocated via
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
After successful invocation the entry may be read with functions
such as
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>Similarly, <function>sd_journal_previous()</function> sets
the read pointer back one entry.</para>
<para>Similarly, <function>sd_journal_previous()</function> sets
the read pointer back one entry.</para>
<para><function>sd_journal_next_skip()</function> and
<function>sd_journal_previous_skip()</function>
advance/set back the read pointer by multiple entries
at once, as specified in the <varname>skip</varname>
parameter.</para>
<para><function>sd_journal_next_skip()</function> and
<function>sd_journal_previous_skip()</function> advance/set back
the read pointer by multiple entries at once, as specified in the
<varname>skip</varname> parameter.</para>
<para>The journal is strictly ordered by reception
time, and hence advancing to the next entry guarantees
that the entry then pointing to is later in time than
then previous one, or has the same timestamp.</para>
<para>The journal is strictly ordered by reception time, and hence
advancing to the next entry guarantees that the entry then
pointing to is later in time than then previous one, or has the
same timestamp.</para>
<para>Note that
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and related calls will fail unless
<function>sd_journal_next()</function> has been
invoked at least once in order to position the read
pointer on a journal entry.</para>
<para>Note that
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and related calls will fail unless
<function>sd_journal_next()</function> has been invoked at least
once in order to position the read pointer on a journal
entry.</para>
<para>Note that the
<function>SD_JOURNAL_FOREACH()</function> macro may be used
as a wrapper around
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and <function>sd_journal_next()</function> in order to
make iterating through the journal easier. See below
for an example. Similarly,
<function>SD_JOURNAL_FOREACH_BACKWARDS()</function>
may be used for iterating the journal in reverse
order.</para>
</refsect1>
<para>Note that the <function>SD_JOURNAL_FOREACH()</function>
macro may be used as a wrapper around
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and <function>sd_journal_next()</function> in order to make
iterating through the journal easier. See below for an example.
Similarly, <function>SD_JOURNAL_FOREACH_BACKWARDS()</function> may
be used for iterating the journal in reverse order.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The four calls return the number of entries
advanced/set back on success or a negative errno-style
error code. When the end or beginning of the journal
is reached, a number smaller than requested is
returned. More specifically, if
<function>sd_journal_next()</function> or
<function>sd_journal_previous()</function> reach the
end/beginning of the journal they will return 0,
instead of 1 when they are successful. This should be
considered an EOF marker.</para>
</refsect1>
<para>The four calls return the number of entries advanced/set
back on success or a negative errno-style error code. When the end
or beginning of the journal is reached, a number smaller than
requested is returned. More specifically, if
<function>sd_journal_next()</function> or
<function>sd_journal_previous()</function> reach the end/beginning
of the journal they will return 0, instead of 1 when they are
successful. This should be considered an EOF marker.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_next()</function>, <function>sd_journal_previous()</function>,
<function>sd_journal_next_skip()</function> and
<function>sd_journal_previous_skip()</function> interfaces are
available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_next()</function>,
<function>sd_journal_previous()</function>,
<function>sd_journal_next_skip()</function> and
<function>sd_journal_previous_skip()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>Iterating through the journal:</para>
<para>Iterating through the journal:</para>
<programlisting>#include &lt;stdio.h&gt;
<programlisting>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;systemd/sd-journal.h&gt;
int main(int argc, char *argv[]) {
int r;
sd_journal *j;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
SD_JOURNAL_FOREACH(j) {
const char *d;
size_t l;
int r;
sd_journal *j;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
SD_JOURNAL_FOREACH(j) {
const char *d;
size_t l;
r = sd_journal_get_data(j, "MESSAGE", (const void **)&amp;d, &amp;l);
if (r &lt; 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
r = sd_journal_get_data(j, "MESSAGE", (const void **)&amp;d, &amp;l);
if (r &lt; 0) {
fprintf(stderr, "Failed to read message field: %s\n", strerror(-r));
continue;
}
printf("%.*s\n", (int) l, d);
}
sd_journal_close(j);
return 0;
printf("%.*s\n", (int) l, d);
}
sd_journal_close(j);
return 0;
}</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,231 +23,217 @@
<refentry id="sd_journal_open">
<refentryinfo>
<title>sd_journal_open</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_open</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_open</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_open</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_open</refname>
<refname>sd_journal_open_directory</refname>
<refname>sd_journal_open_files</refname>
<refname>sd_journal_open_container</refname>
<refname>sd_journal_close</refname>
<refname>sd_journal</refname>
<refname>SD_JOURNAL_LOCAL_ONLY</refname>
<refname>SD_JOURNAL_RUNTIME_ONLY</refname>
<refname>SD_JOURNAL_SYSTEM</refname>
<refname>SD_JOURNAL_CURRENT_USER</refname>
<refpurpose>Open the system journal for reading</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_open</refname>
<refname>sd_journal_open_directory</refname>
<refname>sd_journal_open_files</refname>
<refname>sd_journal_open_container</refname>
<refname>sd_journal_close</refname>
<refname>sd_journal</refname>
<refname>SD_JOURNAL_LOCAL_ONLY</refname>
<refname>SD_JOURNAL_RUNTIME_ONLY</refname>
<refname>SD_JOURNAL_SYSTEM</refname>
<refname>SD_JOURNAL_CURRENT_USER</refname>
<refpurpose>Open the system journal for reading</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_open</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_directory</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_directory</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char *<parameter>path</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_files</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char **<parameter>paths</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_files</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char **<parameter>paths</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_container</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char *<parameter>machine</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_open_container</function></funcdef>
<paramdef>sd_journal **<parameter>ret</parameter></paramdef>
<paramdef>const char *<parameter>machine</parameter></paramdef>
<paramdef>int <parameter>flags</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_close</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>void <function>sd_journal_close</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_open()</function> opens
the log journal for reading. It will find all journal
files automatically and interleave them automatically
when reading. As first argument it takes a pointer to
a <varname>sd_journal</varname> pointer, which on
success will contain a journal context object. The
second argument is a flags field, which may consist of
the following flags ORed together:
<constant>SD_JOURNAL_LOCAL_ONLY</constant> makes sure
only journal files generated on the local machine will
be opened. <constant>SD_JOURNAL_RUNTIME_ONLY</constant>
makes sure only volatile journal files will be opened,
excluding those which are stored on persistent
storage. <constant>SD_JOURNAL_SYSTEM</constant>
will cause journal files of system services and the
kernel (in opposition to user session processes) to
be opened. <constant>SD_JOURNAL_CURRENT_USER</constant>
will cause journal files of the current user to be
opened. If neither <constant>SD_JOURNAL_SYSTEM</constant>
nor <constant>SD_JOURNAL_CURRENT_USER</constant> are
specified, all journal file types will be opened.</para>
<para><function>sd_journal_open()</function> opens the log journal
for reading. It will find all journal files automatically and
interleave them automatically when reading. As first argument it
takes a pointer to a <varname>sd_journal</varname> pointer, which
on success will contain a journal context object. The second
argument is a flags field, which may consist of the following
flags ORed together: <constant>SD_JOURNAL_LOCAL_ONLY</constant>
makes sure only journal files generated on the local machine will
be opened. <constant>SD_JOURNAL_RUNTIME_ONLY</constant> makes sure
only volatile journal files will be opened, excluding those which
are stored on persistent storage.
<constant>SD_JOURNAL_SYSTEM</constant> will cause journal files of
system services and the kernel (in opposition to user session
processes) to be opened.
<constant>SD_JOURNAL_CURRENT_USER</constant> will cause journal
files of the current user to be opened. If neither
<constant>SD_JOURNAL_SYSTEM</constant> nor
<constant>SD_JOURNAL_CURRENT_USER</constant> are specified, all
journal file types will be opened.</para>
<para><function>sd_journal_open_directory()</function>
is similar to <function>sd_journal_open()</function>
but takes an absolute directory path as argument. All
journal files in this directory will be opened and
interleaved automatically. This call also takes a
flags argument, but it must be passed as 0 as no flags
are currently understood for this call.</para>
<para><function>sd_journal_open_directory()</function> is similar
to <function>sd_journal_open()</function> but takes an absolute
directory path as argument. All journal files in this directory
will be opened and interleaved automatically. This call also takes
a flags argument, but it must be passed as 0 as no flags are
currently understood for this call.</para>
<para><function>sd_journal_open_files()</function>
is similar to <function>sd_journal_open()</function>
but takes a <constant>NULL</constant>-terminated list
of file paths to open. All files will be opened and
interleaved automatically. This call also takes a
flags argument, but it must be passed as 0 as no flags
are currently understood for this call. Please note
that in the case of a live journal, this function is only
useful for debugging, because individual journal files
can be rotated at any moment, and the opening of
specific files is inherently racy.</para>
<para><function>sd_journal_open_files()</function> is similar to
<function>sd_journal_open()</function> but takes a
<constant>NULL</constant>-terminated list of file paths to open.
All files will be opened and interleaved automatically. This call
also takes a flags argument, but it must be passed as 0 as no
flags are currently understood for this call. Please note that in
the case of a live journal, this function is only useful for
debugging, because individual journal files can be rotated at any
moment, and the opening of specific files is inherently
racy.</para>
<para><function>sd_journal_open_container()</function>
is similar to <function>sd_journal_open()</function>
but opens the journal files of a running
OS container. The specified machine name refers to a
container that is registered with
<citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para><function>sd_journal_open_container()</function> is similar
to <function>sd_journal_open()</function> but opens the journal
files of a running OS container. The specified machine name refers
to a container that is registered with
<citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
<para><varname>sd_journal</varname> objects cannot be
used in the child after a fork. Functions which take a
journal object as an argument
(<function>sd_journal_next()</function> and others)
will return <constant>-ECHILD</constant> after a fork.
</para>
<para><varname>sd_journal</varname> objects cannot be used in the
child after a fork. Functions which take a journal object as an
argument (<function>sd_journal_next()</function> and others) will
return <constant>-ECHILD</constant> after a fork.
</para>
<para><function>sd_journal_close()</function> will
close the journal context allocated with
<function>sd_journal_open()</function> or
<function>sd_journal_open_directory()</function> and
free its resources.</para>
<para><function>sd_journal_close()</function> will close the
journal context allocated with
<function>sd_journal_open()</function> or
<function>sd_journal_open_directory()</function> and free its
resources.</para>
<para>When opening the journal only journal files
accessible to the calling user will be opened. If
journal files are not accessible to the caller, this
will be silently ignored.</para>
<para>When opening the journal only journal files accessible to
the calling user will be opened. If journal files are not
accessible to the caller, this will be silently ignored.</para>
<para>See
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for an example of how to iterate through the journal
after opening it with
<function>sd_journal_open()</function>.</para>
<para>See
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for an example of how to iterate through the journal after opening
it with <function>sd_journal_open()</function>.</para>
<para>A journal context object returned by
<function>sd_journal_open()</function> references a
specific journal entry as <emphasis>current</emphasis> entry,
similar to a file seek index in a classic file system
file, but without absolute positions. It may be
altered with
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and related calls. The current entry position may be
exported in <emphasis>cursor</emphasis> strings, as accessible
via
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Cursor
strings may be used to globally identify a specific
journal entry in a stable way and then later to seek
to it (or if the specific entry is not available
locally, to its closest entry in time)
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>A journal context object returned by
<function>sd_journal_open()</function> references a specific
journal entry as <emphasis>current</emphasis> entry, similar to a
file seek index in a classic file system file, but without
absolute positions. It may be altered with
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>sd_journal_seek_head</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and related calls. The current entry position may be exported in
<emphasis>cursor</emphasis> strings, as accessible via
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
Cursor strings may be used to globally identify a specific journal
entry in a stable way and then later to seek to it (or if the
specific entry is not available locally, to its closest entry in
time)
<citerefentry><refentrytitle>sd_journal_seek_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>Notification of journal changes is available via
<function>sd_journal_get_fd()</function> and related
calls.</para>
</refsect1>
<para>Notification of journal changes is available via
<function>sd_journal_get_fd()</function> and related calls.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The <function>sd_journal_open()</function>,
<function>sd_journal_open_directory()</function>, and
<function>sd_journal_open_files()</function> calls
return 0 on success or a negative errno-style error
code. <function>sd_journal_close()</function> returns
nothing.</para>
</refsect1>
<para>The <function>sd_journal_open()</function>,
<function>sd_journal_open_directory()</function>, and
<function>sd_journal_open_files()</function> calls return 0 on
success or a negative errno-style error code.
<function>sd_journal_close()</function> returns nothing.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_open()</function>,
<function>sd_journal_open_directory()</function> and
<function>sd_journal_close()</function> interfaces are
available as a shared library, which can be compiled and
linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_open()</function>,
<function>sd_journal_open_directory()</function> and
<function>sd_journal_close()</function> interfaces are available
as a shared library, which can be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<para><function>sd_journal_open()</function>,
<function>sd_journal_close()</function>,
<constant>SD_JOURNAL_LOCAL_ONLY</constant>,
<constant>SD_JOURNAL_RUNTIME_ONLY</constant>,
<constant>SD_JOURNAL_SYSTEM_ONLY</constant> were added
in systemd-38.</para>
<para><function>sd_journal_open()</function>,
<function>sd_journal_close()</function>,
<constant>SD_JOURNAL_LOCAL_ONLY</constant>,
<constant>SD_JOURNAL_RUNTIME_ONLY</constant>,
<constant>SD_JOURNAL_SYSTEM_ONLY</constant> were added in
systemd-38.</para>
<para><function>sd_journal_open_directory()</function>
was added in systemd-187.</para>
<para><function>sd_journal_open_directory()</function> was added
in systemd-187.</para>
<para><constant>SD_JOURNAL_SYSTEM</constant>,
<constant>SD_JOURNAL_CURRENT_USER</constant>,
and <function>sd_journal_open_files()</function>
were added in systemd-205.
<constant>SD_JOURNAL_SYSTEM_ONLY</constant>
was deprecated.</para>
</refsect1>
<para><constant>SD_JOURNAL_SYSTEM</constant>,
<constant>SD_JOURNAL_CURRENT_USER</constant>, and
<function>sd_journal_open_files()</function> were added in
systemd-205. <constant>SD_JOURNAL_SYSTEM_ONLY</constant> was
deprecated.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,248 +23,238 @@
<refentry id="sd_journal_print">
<refentryinfo>
<title>sd_journal_print</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_print</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_print</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_print</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_print</refname>
<refname>sd_journal_printv</refname>
<refname>sd_journal_send</refname>
<refname>sd_journal_sendv</refname>
<refname>sd_journal_perror</refname>
<refname>SD_JOURNAL_SUPPRESS_LOCATION</refname>
<refpurpose>Submit log entries to the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_print</refname>
<refname>sd_journal_printv</refname>
<refname>sd_journal_send</refname>
<refname>sd_journal_sendv</refname>
<refname>sd_journal_perror</refname>
<refname>SD_JOURNAL_SUPPRESS_LOCATION</refname>
<refpurpose>Submit log entries to the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_print</function></funcdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_print</function></funcdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_printv</function></funcdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>va_list <parameter>ap</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_printv</function></funcdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>va_list <parameter>ap</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_send</function></funcdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_send</function></funcdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_sendv</function></funcdef>
<paramdef>const struct iovec *<parameter>iov</parameter></paramdef>
<paramdef>int <parameter>n</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_sendv</function></funcdef>
<paramdef>const struct iovec *<parameter>iov</parameter></paramdef>
<paramdef>int <parameter>n</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_perror</function></funcdef>
<paramdef>const char *<parameter>message</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_perror</function></funcdef>
<paramdef>const char *<parameter>message</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_print()</function> may be
used to submit simple, plain text log entries to the
system journal. The first argument is a priority
value. This is followed by a format string and its
parameters, similar to
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>. The
priority value is one of
<constant>LOG_EMERG</constant>,
<constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>,
<constant>LOG_ERR</constant>,
<constant>LOG_WARNING</constant>,
<constant>LOG_NOTICE</constant>,
<constant>LOG_INFO</constant>,
<constant>LOG_DEBUG</constant>, as defined in
<filename>syslog.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details. It is recommended to use this call to
submit log messages in the application locale or system
locale and in UTF-8 format, but no such restrictions
are enforced.</para>
<para><function>sd_journal_print()</function> may be used to
submit simple, plain text log entries to the system journal. The
first argument is a priority value. This is followed by a format
string and its parameters, similar to
<citerefentry project='man-pages'><refentrytitle>printf</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
The priority value is one of
<constant>LOG_EMERG</constant>,
<constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>,
<constant>LOG_ERR</constant>,
<constant>LOG_WARNING</constant>,
<constant>LOG_NOTICE</constant>,
<constant>LOG_INFO</constant>,
<constant>LOG_DEBUG</constant>, as defined in
<filename>syslog.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details. It is recommended to use this call to submit log
messages in the application locale or system locale and in UTF-8
format, but no such restrictions are enforced.</para>
<para><function>sd_journal_printv()</function> is
similar to <function>sd_journal_print()</function> but
takes a variable argument list encapsulated in an
object of type <varname>va_list</varname> (see
<citerefentry><refentrytitle>stdarg</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information) instead of the format string. It
is otherwise equivalent in behavior.</para>
<para><function>sd_journal_printv()</function> is similar to
<function>sd_journal_print()</function> but takes a variable
argument list encapsulated in an object of type
<varname>va_list</varname> (see
<citerefentry><refentrytitle>stdarg</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information) instead of the format string. It is
otherwise equivalent in behavior.</para>
<para><function>sd_journal_send()</function> may be
used to submit structured log entries to the system
journal. It takes a series of format strings, each
immediately followed by their associated parameters,
terminated by <constant>NULL</constant>. The strings passed should be of
the format <literal>VARIABLE=value</literal>. The
variable name must be in uppercase and consist only of
characters, numbers and underscores, and may not begin
with an underscore. (All assignments that do not
follow this syntax will be ignored.) The value can be
of any size and format. It is highly recommended to
submit text strings formatted in the UTF-8 character
encoding only, and submit binary fields only when
formatting in UTF-8 strings is not sensible. A number
of well known fields are defined, see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details, but additional application defined fields
may be used. A variable may be assigned more than one
value per entry.</para>
<para><function>sd_journal_send()</function> may be used to submit
structured log entries to the system journal. It takes a series of
format strings, each immediately followed by their associated
parameters, terminated by <constant>NULL</constant>. The strings
passed should be of the format <literal>VARIABLE=value</literal>.
The variable name must be in uppercase and consist only of
characters, numbers and underscores, and may not begin with an
underscore. (All assignments that do not follow this syntax will
be ignored.) The value can be of any size and format. It is highly
recommended to submit text strings formatted in the UTF-8
character encoding only, and submit binary fields only when
formatting in UTF-8 strings is not sensible. A number of well
known fields are defined, see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details, but additional application defined fields may be
used. A variable may be assigned more than one value per
entry.</para>
<para><function>sd_journal_sendv()</function> is
similar to <function>sd_journal_send()</function> but
takes an array of <varname>struct iovec</varname> (as
defined in <filename>uio.h</filename>, see
<citerefentry><refentrytitle>readv</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details) instead of the format string. Each
structure should reference one field of the entry to
submit. The second argument specifies the number of
structures in the array.
<function>sd_journal_sendv()</function> is
particularly useful to submit binary objects to the
journal where that is necessary.</para>
<para><function>sd_journal_sendv()</function> is similar to
<function>sd_journal_send()</function> but takes an array of
<varname>struct iovec</varname> (as defined in
<filename>uio.h</filename>, see
<citerefentry><refentrytitle>readv</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details) instead of the format string. Each structure should
reference one field of the entry to submit. The second argument
specifies the number of structures in the array.
<function>sd_journal_sendv()</function> is particularly useful to
submit binary objects to the journal where that is
necessary.</para>
<para><function>sd_journal_perror()</function> is a
similar to
<citerefentry><refentrytitle>perror</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and writes a message to the journal that consists of
the passed string, suffixed with ": " and a human
readable representation of the current error code
stored in
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
the message string is passed as <constant>NULL</constant> or empty string,
only the error string representation will be written,
prefixed with nothing. An additional journal field
ERRNO= is included in the entry containing the numeric
error code formatted as decimal string. The log
priority used is <constant>LOG_ERR</constant> (3).</para>
<para><function>sd_journal_perror()</function> is a similar to
<citerefentry><refentrytitle>perror</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and writes a message to the journal that consists of the passed
string, suffixed with ": " and a human readable representation of
the current error code stored in
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
If the message string is passed as <constant>NULL</constant> or
empty string, only the error string representation will be
written, prefixed with nothing. An additional journal field ERRNO=
is included in the entry containing the numeric error code
formatted as decimal string. The log priority used is
<constant>LOG_ERR</constant> (3).</para>
<para>Note that <function>sd_journal_send()</function>
is a wrapper around
<function>sd_journal_sendv()</function> to make it
easier to use when only text strings shall be
submitted. Also, the following two calls are
mostly equivalent:</para>
<para>Note that <function>sd_journal_send()</function> is a
wrapper around <function>sd_journal_sendv()</function> to make it
easier to use when only text strings shall be submitted. Also, the
following two calls are mostly equivalent:</para>
<programlisting>sd_journal_print(LOG_INFO, "Hello World, this is PID %lu!", (unsigned long) getpid());
<programlisting>sd_journal_print(LOG_INFO, "Hello World, this is PID %lu!", (unsigned long) getpid());
sd_journal_send("MESSAGE=Hello World, this is PID %lu!", (unsigned long) getpid(),
"PRIORITY=%i", LOG_INFO,
NULL);</programlisting>
"PRIORITY=%i", LOG_INFO,
NULL);</programlisting>
<para>Note that these calls implicitly add fields for
the source file, function name and code line where
invoked. This is implemented with macros. If this is
not desired, it can be turned off by defining
SD_JOURNAL_SUPPRESS_LOCATION before including
<filename>sd-journal.h</filename>.</para>
<para>Note that these calls implicitly add fields for the source
file, function name and code line where invoked. This is
implemented with macros. If this is not desired, it can be turned
off by defining SD_JOURNAL_SUPPRESS_LOCATION before including
<filename>sd-journal.h</filename>.</para>
<para><citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and <function>sd_journal_print()</function> may
largely be used interchangeably
functionality-wise. However, note that log messages
logged via the former take a different path to the
journal server than the later, and hence global
chronological ordering between the two streams cannot
be guaranteed. Using
<function>sd_journal_print()</function> has the
benefit of logging source code line, filenames, and
functions as metadata along all entries, and
guaranteeing chronological ordering with structured
log entries that are generated via
<function>sd_journal_send()</function>. Using
<function>syslog()</function> has the benefit of being
more portable.</para>
</refsect1>
<para><citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
and <function>sd_journal_print()</function> may
largely be used interchangeably
functionality-wise. However, note that log messages
logged via the former take a different path to the
journal server than the later, and hence global
chronological ordering between the two streams cannot
be guaranteed. Using
<function>sd_journal_print()</function> has the
benefit of logging source code line, filenames, and
functions as metadata along all entries, and
guaranteeing chronological ordering with structured
log entries that are generated via
<function>sd_journal_send()</function>. Using
<function>syslog()</function> has the benefit of being
more portable.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The four calls return 0 on success or a negative
errno-style error code. The
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>
variable itself is not altered.</para>
<para>The four calls return 0 on success or a negative errno-style
error code. The
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>
variable itself is not altered.</para>
<para>If
<citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>
is not running (the socket is not present), those
functions do nothing, and also return 0.</para>
</refsect1>
<para>If
<citerefentry><refentrytitle>systemd-journald</refentrytitle><manvolnum>8</manvolnum></citerefentry>
is not running (the socket is not present), those functions do
nothing, and also return 0.</para>
</refsect1>
<refsect1>
<title>Async signal safety</title>
<para><function>sd_journal_sendv()</function> is "async signal
safe" in the meaning of <citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
</para>
<refsect1>
<title>Async signal safety</title>
<para><function>sd_journal_sendv()</function> is "async signal
safe" in the meaning of
<citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
</para>
<para><function>sd_journal_print</function>,
<function>sd_journal_printv</function>,
<function>sd_journal_send</function>, and
<function>sd_journal_perror</function> are
not async signal safe.</para>
</refsect1>
<para><function>sd_journal_print</function>,
<function>sd_journal_printv</function>,
<function>sd_journal_send</function>, and
<function>sd_journal_perror</function> are
not async signal safe.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_print()</function>,
<function>sd_journal_printv()</function>,
<function>sd_journal_send()</function> and
<function>sd_journal_sendv()</function> interfaces
are available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_print()</function>,
<function>sd_journal_printv()</function>,
<function>sd_journal_send()</function> and
<function>sd_journal_sendv()</function> interfaces are available
as a shared library, which can be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>perror</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>socket</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_stream_fd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>perror</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>errno</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>signal</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>socket</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,193 +23,184 @@
<refentry id="sd_journal_query_unique">
<refentryinfo>
<title>sd_journal_query_unique</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_query_unique</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_query_unique</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_query_unique</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_query_unique</refname>
<refname>sd_journal_enumerate_unique</refname>
<refname>sd_journal_restart_unique</refname>
<refname>SD_JOURNAL_FOREACH_UNIQUE</refname>
<refpurpose>Read unique data fields from the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_query_unique</refname>
<refname>sd_journal_enumerate_unique</refname>
<refname>sd_journal_restart_unique</refname>
<refname>SD_JOURNAL_FOREACH_UNIQUE</refname>
<refpurpose>Read unique data fields from the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_query_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>field</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_query_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>field</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_enumerate_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_enumerate_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void **<parameter>data</parameter></paramdef>
<paramdef>size_t *<parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_restart_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>void <function>sd_journal_restart_unique</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_UNIQUE</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef><function>SD_JOURNAL_FOREACH_UNIQUE</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const void *<parameter>data</parameter></paramdef>
<paramdef>size_t <parameter>length</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_query_unique()</function>
queries the journal for all unique values the
specified field can take. It takes two arguments: the
journal to query and the field name to look
for. Well-known field names are listed on
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>. Field
names must be specified without a trailing '='. After
this function has been executed successfully the field
values may be queried using
<function>sd_journal_enumerate_unique()</function>. Invoking
this call a second time will change the field name
being queried and reset the enumeration index to the
first field value that matches.</para>
<para><function>sd_journal_query_unique()</function> queries the
journal for all unique values the specified field can take. It
takes two arguments: the journal to query and the field name to
look for. Well-known field names are listed on
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
Field names must be specified without a trailing '='. After this
function has been executed successfully the field values may be
queried using <function>sd_journal_enumerate_unique()</function>.
Invoking this call a second time will change the field name being
queried and reset the enumeration index to the first field value
that matches.</para>
<para><function>sd_journal_enumerate_unique()</function>
may be used to iterate through all data fields which
match the previously selected field name as set with
<function>sd_journal_query_unique()</function>. On
each invocation the next field data matching the field
name is returned. The order of the returned data
fields is not defined. It takes three arguments: the
journal context object, plus a pair of pointers to
pointer/size variables where the data object and its
size shall be stored in. The returned data is in a
read-only memory map and is only valid until the next
invocation of
<function>sd_journal_enumerate_unique()</function>. Note
that the data returned will be prefixed with the field
name and '='. Note that this call is subject to the
data field size threshold as controlled by
<function>sd_journal_set_data_threshold()</function>.</para>
<para><function>sd_journal_enumerate_unique()</function> may be
used to iterate through all data fields which match the previously
selected field name as set with
<function>sd_journal_query_unique()</function>. On each invocation
the next field data matching the field name is returned. The order
of the returned data fields is not defined. It takes three
arguments: the journal context object, plus a pair of pointers to
pointer/size variables where the data object and its size shall be
stored in. The returned data is in a read-only memory map and is
only valid until the next invocation of
<function>sd_journal_enumerate_unique()</function>. Note that the
data returned will be prefixed with the field name and '='. Note
that this call is subject to the data field size threshold as
controlled by
<function>sd_journal_set_data_threshold()</function>.</para>
<para><function>sd_journal_restart_unique()</function>
resets the data enumeration index to the beginning of
the list. The next invocation of
<function>sd_journal_enumerate_unique()</function>
will return the first field data matching the field
name again.</para>
<para><function>sd_journal_restart_unique()</function> resets the
data enumeration index to the beginning of the list. The next
invocation of <function>sd_journal_enumerate_unique()</function>
will return the first field data matching the field name
again.</para>
<para>Note that the
<function>SD_JOURNAL_FOREACH_UNIQUE()</function> macro
may be used as a handy wrapper around
<function>sd_journal_restart_unique()</function> and
<function>sd_journal_enumerate_unique()</function>.</para>
<para>Note that the
<function>SD_JOURNAL_FOREACH_UNIQUE()</function> macro may be used
as a handy wrapper around
<function>sd_journal_restart_unique()</function> and
<function>sd_journal_enumerate_unique()</function>.</para>
<para>Note that these functions currently are not
influenced by matches set with
<function>sd_journal_add_match()</function> but this
might change in a later version of this
software.</para>
</refsect1>
<para>Note that these functions currently are not influenced by
matches set with <function>sd_journal_add_match()</function> but
this might change in a later version of this software.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_query_unique()</function>
returns 0 on success or a negative errno-style error
code. <function>sd_journal_enumerate_unique()</function>
returns a positive integer if the next field data has
been read, 0 when no more fields are known, or a
negative errno-style error
code. <function>sd_journal_restart_unique()</function>
returns nothing.</para>
</refsect1>
<para><function>sd_journal_query_unique()</function> returns 0 on
success or a negative errno-style error code.
<function>sd_journal_enumerate_unique()</function> returns a
positive integer if the next field data has been read, 0 when no
more fields are known, or a negative errno-style error code.
<function>sd_journal_restart_unique()</function> returns
nothing.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_query_unique()</function>,
<function>sd_journal_enumerate_unique()</function> and
<function>sd_journal_restart_unique()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_query_unique()</function>,
<function>sd_journal_enumerate_unique()</function> and
<function>sd_journal_restart_unique()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>Use the
<function>SD_JOURNAL_FOREACH_UNIQUE</function> macro
to iterate through all values a field of the journal
can take. The following example lists all unit names
referenced in the journal:</para>
<para>Use the <function>SD_JOURNAL_FOREACH_UNIQUE</function> macro
to iterate through all values a field of the journal can take. The
following example lists all unit names referenced in the
journal:</para>
<programlisting>#include &lt;stdio.h&gt;
<programlisting>#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;systemd/sd-journal.h&gt;
int main(int argc, char *argv[]) {
sd_journal *j;
const void *d;
size_t l;
int r;
sd_journal *j;
const void *d;
size_t l;
int r;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
r = sd_journal_query_unique(j, "_SYSTEMD_UNIT");
if (r &lt; 0) {
fprintf(stderr, "Failed to query journal: %s\n", strerror(-r));
return 1;
}
SD_JOURNAL_FOREACH_UNIQUE(j, d, l)
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
r = sd_journal_open(&amp;j, SD_JOURNAL_LOCAL_ONLY);
if (r &lt; 0) {
fprintf(stderr, "Failed to open journal: %s\n", strerror(-r));
return 1;
}
r = sd_journal_query_unique(j, "_SYSTEMD_UNIT");
if (r &lt; 0) {
fprintf(stderr, "Failed to query journal: %s\n", strerror(-r));
return 1;
}
SD_JOURNAL_FOREACH_UNIQUE(j, d, l)
printf("%.*s\n", (int) l, (const char*) d);
sd_journal_close(j);
return 0;
}</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_add_match</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,157 +23,150 @@
<refentry id="sd_journal_seek_head">
<refentryinfo>
<title>sd_journal_seek_head</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_seek_head</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_seek_head</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_seek_head</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_seek_head</refname>
<refname>sd_journal_seek_tail</refname>
<refname>sd_journal_seek_monotonic_usec</refname>
<refname>sd_journal_seek_realtime_usec</refname>
<refname>sd_journal_seek_cursor</refname>
<refpurpose>Seek to a position in the
journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_seek_head</refname>
<refname>sd_journal_seek_tail</refname>
<refname>sd_journal_seek_monotonic_usec</refname>
<refname>sd_journal_seek_realtime_usec</refname>
<refname>sd_journal_seek_cursor</refname>
<refpurpose>Seek to a position in the
journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_seek_head</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_head</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_tail</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_tail</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>sd_id128_t <parameter>boot_id</parameter></paramdef>
<paramdef>uint64_t <parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>sd_id128_t <parameter>boot_id</parameter></paramdef>
<paramdef>uint64_t <parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t <parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_seek_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>cursor</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_journal_seek_cursor</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>const char *<parameter>cursor</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_seek_head()</function>
seeks to the beginning of the journal, i.e. the oldest
available entry.</para>
<para><function>sd_journal_seek_head()</function> seeks to the
beginning of the journal, i.e. the oldest available entry.</para>
<para>Similarly,
<function>sd_journal_seek_tail()</function> may be
used to seek to the end of the journal, i.e. the most
recent available entry.</para>
<para>Similarly, <function>sd_journal_seek_tail()</function> may
be used to seek to the end of the journal, i.e. the most recent
available entry.</para>
<para><function>sd_journal_seek_monotonic_usec()</function>
seeks to the entry with the specified monotonic
timestamp,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since
monotonic time restarts on every reboot a boot ID
needs to be specified as well.</para>
<para><function>sd_journal_seek_monotonic_usec()</function> seeks
to the entry with the specified monotonic timestamp, i.e.
<constant>CLOCK_MONOTONIC</constant>. Since monotonic time
restarts on every reboot a boot ID needs to be specified as
well.</para>
<para><function>sd_journal_seek_realtime_usec()</function>
seeks to the entry with the specified realtime
(wallclock) timestamp,
i.e. <constant>CLOCK_REALTIME</constant>. Note that
the realtime clock is not necessarily monotonic. If a
realtime timestamp is ambiguous, it is not defined
which position is sought to.</para>
<para><function>sd_journal_seek_realtime_usec()</function> seeks
to the entry with the specified realtime (wallclock) timestamp,
i.e. <constant>CLOCK_REALTIME</constant>. Note that the realtime
clock is not necessarily monotonic. If a realtime timestamp is
ambiguous, it is not defined which position is sought to.</para>
<para><function>sd_journal_seek_cursor()</function>
seeks to the entry located at the specified cursor
string. For details on cursors, see
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
no entry matching the specified cursor is found the
call will seek to the next closest entry (in terms of
time) instead. To verify whether the newly selected
entry actually matches the cursor, use
<citerefentry><refentrytitle>sd_journal_test_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para><function>sd_journal_seek_cursor()</function> seeks to the
entry located at the specified cursor string. For details on
cursors, see
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
If no entry matching the specified cursor is found the call will
seek to the next closest entry (in terms of time) instead. To
verify whether the newly selected entry actually matches the
cursor, use
<citerefentry><refentrytitle>sd_journal_test_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para>
<para>Note that these calls do not actually make any
entry the new current entry, this needs to be done in
a separate step with a subsequent
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
invocation (or a similar call). Only then, entry data
may be retrieved via
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>. If
no entry exists that matches exactly the specified
seek address, the next closest is sought to. If
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
is used, the closest following entry will be sought to,
if
<citerefentry><refentrytitle>sd_journal_previous</refentrytitle><manvolnum>3</manvolnum></citerefentry>
is used the closest preceding entry is sought
to.</para>
</refsect1>
<para>Note that these calls do not actually make any entry the new
current entry, this needs to be done in a separate step with a
subsequent
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
invocation (or a similar call). Only then, entry data may be
retrieved via
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
If no entry exists that matches exactly the specified seek
address, the next closest is sought to. If
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
is used, the closest following entry will be sought to, if
<citerefentry><refentrytitle>sd_journal_previous</refentrytitle><manvolnum>3</manvolnum></citerefentry>
is used the closest preceding entry is sought to.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The functions return 0 on success or a negative
errno-style error code.</para>
</refsect1>
<para>The functions return 0 on success or a negative errno-style
error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_seek_head()</function>,
<function>sd_journal_seek_tail()</function>,
<function>sd_journal_seek_monotonic_usec()</function>,
<function>sd_journal_seek_realtime_usec()</function>,
and <function>sd_journal_seek_cursor()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_seek_head()</function>,
<function>sd_journal_seek_tail()</function>,
<function>sd_journal_seek_monotonic_usec()</function>,
<function>sd_journal_seek_realtime_usec()</function>,
and <function>sd_journal_seek_cursor()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cursor</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,108 +23,101 @@
<refentry id="sd_journal_stream_fd">
<refentryinfo>
<title>sd_journal_stream_fd</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_journal_stream_fd</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_stream_fd</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_journal_stream_fd</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_stream_fd</refname>
<refpurpose>Create log stream file descriptor to the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_journal_stream_fd</refname>
<refpurpose>Create log stream file descriptor to the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_stream_fd</function></funcdef>
<paramdef>const char *<parameter>identifier</parameter></paramdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>int <parameter>level_prefix</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_stream_fd</function></funcdef>
<paramdef>const char *<parameter>identifier</parameter></paramdef>
<paramdef>int <parameter>priority</parameter></paramdef>
<paramdef>int <parameter>level_prefix</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_journal_stream_fd()</function> may
be used to create a log stream file descriptor. Log
messages written to this file descriptor as simple
newline-separated text strings are written to the
journal. This file descriptor can be used internally
by applications or be made standard output or standard
error of other processes executed.</para>
<para><function>sd_journal_stream_fd()</function> may be used to
create a log stream file descriptor. Log messages written to this
file descriptor as simple newline-separated text strings are
written to the journal. This file descriptor can be used
internally by applications or be made standard output or standard
error of other processes executed.</para>
<para><function>sd_journal_stream_fd()</function>
takes a short program identifier string as first
argument, which will be written to the journal as
_SYSLOG_IDENTIFIER= field for each log entry (see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information). The second argument shall be
the default priority level for all messages. The
priority level is one of <constant>LOG_EMERG</constant>,
<constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>,
<constant>LOG_ERR</constant>,
<constant>LOG_WARNING</constant>,
<constant>LOG_NOTICE</constant>,
<constant>LOG_INFO</constant>,
<constant>LOG_DEBUG</constant>, as defined in
<filename>syslog.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details. The third argument is a boolean: if true
kernel-style log level prefixes (such as
<constant>SD_WARNING</constant>) are interpreted, see
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information.</para>
<para><function>sd_journal_stream_fd()</function> takes a short
program identifier string as first argument, which will be written
to the journal as _SYSLOG_IDENTIFIER= field for each log entry
(see
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information). The second argument shall be the default
priority level for all messages. The priority level is one of
<constant>LOG_EMERG</constant>, <constant>LOG_ALERT</constant>,
<constant>LOG_CRIT</constant>, <constant>LOG_ERR</constant>,
<constant>LOG_WARNING</constant>, <constant>LOG_NOTICE</constant>,
<constant>LOG_INFO</constant>, <constant>LOG_DEBUG</constant>, as
defined in <filename>syslog.h</filename>, see
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for details. The third argument is a boolean: if true kernel-style
log level prefixes (such as <constant>SD_WARNING</constant>) are
interpreted, see
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information.</para>
<para>It is recommended that applications log UTF-8
messages only with this API, but this is not
enforced.</para>
<para>It is recommended that applications log UTF-8 messages only
with this API, but this is not enforced.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>The call returns a valid write-only file descriptor on
success or a negative errno-style error code.</para>
</refsect1>
<para>The call returns a valid write-only file descriptor on success or a
negative errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_journal_stream_fd()</function> interface is
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_journal_stream_fd()</function>
interface is available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>Creating a log stream suitable for
<citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>:</para>
<para>Creating a log stream suitable for
<citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>:</para>
<programlisting>#include &lt;syslog.h&gt;
<programlisting>#include &lt;syslog.h&gt;
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
#include &lt;unistd.h&gt;
@ -132,39 +125,39 @@
#include &lt;systemd/sd-daemon.h&gt;
int main(int argc, char *argv[]) {
int fd;
FILE *log;
fd = sd_journal_stream_fd("test", LOG_INFO, 1);
if (fd &lt; 0) {
fprintf(stderr, "Failed to create stream fd: %s\n", strerror(-fd));
return 1;
}
log = fdopen(fd, "w");
if (!log) {
fprintf(stderr, "Failed to create file object: %m\n");
close(fd);
return 1;
}
fprintf(log, "Hello World!\n");
fprintf(log, SD_WARNING "This is a warning!\n");
fclose(log);
return 0;
int fd;
FILE *log;
fd = sd_journal_stream_fd("test", LOG_INFO, 1);
if (fd &lt; 0) {
fprintf(stderr, "Failed to create stream fd: %s\n", strerror(-fd));
return 1;
}
log = fdopen(fd, "w");
if (!log) {
fprintf(stderr, "Failed to create file object: %m\n");
close(fd);
return 1;
}
fprintf(log, "Hello World!\n");
fprintf(log, SD_WARNING "This is a warning!\n");
fclose(log);
return 0;
}</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>fprintf</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,164 +22,155 @@
-->
<refentry id="sd_listen_fds"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_listen_fds</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_listen_fds</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_listen_fds</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_listen_fds</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_listen_fds</refname>
<refname>SD_LISTEN_FDS_START</refname>
<refpurpose>Check for file descriptors passed by the system manager</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_listen_fds</refname>
<refname>SD_LISTEN_FDS_START</refname>
<refpurpose>Check for file descriptors passed by the system manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<funcsynopsisinfo>#define SD_LISTEN_FDS_START 3</funcsynopsisinfo>
<funcsynopsisinfo>#define SD_LISTEN_FDS_START 3</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_listen_fds</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_listen_fds</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_listen_fds()</function> shall be
called by a daemon to check for file descriptors
passed by the init system as part of the socket-based
activation logic.</para>
<para><function>sd_listen_fds()</function> shall be called by a
daemon to check for file descriptors passed by the init system as
part of the socket-based activation logic.</para>
<para>If the <parameter>unset_environment</parameter>
parameter is non-zero,
<function>sd_listen_fds()</function> will unset the
<varname>$LISTEN_FDS</varname> and <varname>$LISTEN_PID</varname>
environment variables before returning (regardless of
whether the function call itself succeeded or
not). Further calls to
<function>sd_listen_fds()</function> will then fail,
but the variables are no longer inherited by child
processes.</para>
<para>If the <parameter>unset_environment</parameter> parameter is
non-zero, <function>sd_listen_fds()</function> will unset the
<varname>$LISTEN_FDS</varname> and <varname>$LISTEN_PID</varname>
environment variables before returning (regardless of whether the
function call itself succeeded or not). Further calls to
<function>sd_listen_fds()</function> will then fail, but the
variables are no longer inherited by child processes.</para>
<para>If a daemon receives more than one file
descriptor, they will be passed in the same order as
configured in the systemd socket unit file (see
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details). Nonetheless, it is recommended to verify
the correct socket types before using them. To
simplify this checking, the functions
<citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_unix</refentrytitle><manvolnum>3</manvolnum></citerefentry>
are provided. In order to maximize flexibility, it is
recommended to make these checks as loose as possible
without allowing incorrect setups. i.e. often, the
actual port number a socket is bound to matters little
for the service to work, hence it should not be
verified. On the other hand, whether a socket is a
datagram or stream socket matters a lot for the most
common program logics and should be checked.</para>
<para>If a daemon receives more than one file descriptor, they
will be passed in the same order as configured in the systemd
socket unit file (see
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details). Nonetheless, it is recommended to verify the correct
socket types before using them. To simplify this checking, the
functions
<citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_unix</refentrytitle><manvolnum>3</manvolnum></citerefentry>
are provided. In order to maximize flexibility, it is recommended
to make these checks as loose as possible without allowing
incorrect setups. i.e. often, the actual port number a socket is
bound to matters little for the service to work, hence it should
not be verified. On the other hand, whether a socket is a datagram
or stream socket matters a lot for the most common program logics
and should be checked.</para>
<para>This function call will set the FD_CLOEXEC flag
for all passed file descriptors to avoid further
inheritance to children of the calling process.</para>
<para>This function call will set the FD_CLOEXEC flag for all
passed file descriptors to avoid further inheritance to children
of the calling process.</para>
<para>If multiple socket units activate the same
service the order of the file descriptors passed to
its main process is undefined. If additional file
descriptors have been passed to the service manager
using
<citerefentry><refentrytitle>sd_pid_notify_with_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>'s
<literal>FDSTORE=1</literal> messages, these file
descriptors are passed last, in arbitrary order, and
with duplicates removed.</para>
</refsect1>
<para>If multiple socket units activate the same service the order
of the file descriptors passed to its main process is undefined.
If additional file descriptors have been passed to the service
manager using
<citerefentry><refentrytitle>sd_pid_notify_with_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>'s
<literal>FDSTORE=1</literal> messages, these file descriptors are
passed last, in arbitrary order, and with duplicates
removed.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On failure, this call returns a negative
errno-style error code. If
<varname>$LISTEN_FDS</varname>/<varname>$LISTEN_PID</varname>
was not set or was not correctly set for this daemon and
hence no file descriptors were received, 0 is
returned. Otherwise, the number of file descriptors
passed is returned. The application may find them
starting with file descriptor SD_LISTEN_FDS_START,
i.e. file descriptor 3.</para>
</refsect1>
<para>On failure, this call returns a negative errno-style error
code. If
<varname>$LISTEN_FDS</varname>/<varname>$LISTEN_PID</varname> was
not set or was not correctly set for this daemon and hence no file
descriptors were received, 0 is returned. Otherwise, the number of
file descriptors passed is returned. The application may find them
starting with file descriptor SD_LISTEN_FDS_START, i.e. file
descriptor 3.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<para>Internally, this function checks whether the
<varname>$LISTEN_PID</varname> environment variable
equals the daemon PID. If not, it returns
immediately. Otherwise, it parses the number passed in
the <varname>$LISTEN_FDS</varname> environment
variable, then sets the FD_CLOEXEC flag for the parsed
number of file descriptors starting from
SD_LISTEN_FDS_START. Finally, it returns the parsed
number.</para>
</refsect1>
<para>Internally, this function checks whether the
<varname>$LISTEN_PID</varname> environment variable equals the
daemon PID. If not, it returns immediately. Otherwise, it parses
the number passed in the <varname>$LISTEN_FDS</varname>
environment variable, then sets the FD_CLOEXEC flag for the parsed
number of file descriptors starting from SD_LISTEN_FDS_START.
Finally, it returns the parsed number.</para>
</refsect1>
<refsect1>
<title>Environment</title>
<refsect1>
<title>Environment</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$LISTEN_PID</varname></term>
<term><varname>$LISTEN_FDS</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$LISTEN_PID</varname></term>
<term><varname>$LISTEN_FDS</varname></term>
<listitem><para>Set by the init system
for supervised processes that use
socket-based activation. This
environment variable specifies the
data
<function>sd_listen_fds()</function>
parses. See above for
details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Set by the init system
for supervised processes that use
socket-based activation. This
environment variable specifies the
data
<function>sd_listen_fds()</function>
parses. See above for
details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_unix</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>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_fifo</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_inet</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_is_socket_unix</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>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,223 +23,211 @@
<refentry id="sd_login_monitor_new" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_login_monitor_new</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_login_monitor_new</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_login_monitor_new</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_login_monitor_new</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_login_monitor_new</refname>
<refname>sd_login_monitor_unref</refname>
<refname>sd_login_monitor_flush</refname>
<refname>sd_login_monitor_get_fd</refname>
<refname>sd_login_monitor_get_events</refname>
<refname>sd_login_monitor_get_timeout</refname>
<refname>sd_login_monitor</refname>
<refpurpose>Monitor login sessions, seats, users and virtual machines/containers</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_login_monitor_new</refname>
<refname>sd_login_monitor_unref</refname>
<refname>sd_login_monitor_flush</refname>
<refname>sd_login_monitor_get_fd</refname>
<refname>sd_login_monitor_get_events</refname>
<refname>sd_login_monitor_get_timeout</refname>
<refname>sd_login_monitor</refname>
<refpurpose>Monitor login sessions, seats, users and virtual machines/containers</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_login_monitor_new</function></funcdef>
<paramdef>const char *<parameter>category</parameter></paramdef>
<paramdef>sd_login_monitor **<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_new</function></funcdef>
<paramdef>const char *<parameter>category</parameter></paramdef>
<paramdef>sd_login_monitor **<parameter>ret</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>sd_login_monitor *<function>sd_login_monitor_unref</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>sd_login_monitor *<function>sd_login_monitor_unref</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_flush</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_flush</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_fd</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_fd</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_events</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_events</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_timeout</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
<paramdef>uint64_t *<parameter>timeout_usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_login_monitor_get_timeout</function></funcdef>
<paramdef>sd_login_monitor *<parameter>m</parameter></paramdef>
<paramdef>uint64_t *<parameter>timeout_usec</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_login_monitor_new()</function> may
be used to monitor login sessions, users, seats, and
virtual machines/containers. Via a monitor object a
file descriptor can be integrated into an application
defined event loop which is woken up each time a user
logs in, logs out or a seat is added or removed, or a
session, user, seat or virtual machine/container
changes state otherwise. The first parameter takes a
string which can be <literal>seat</literal> (to get
only notifications about seats being added, removed or
changed), <literal>session</literal> (to get only
notifications about sessions being created or removed
or changed), <literal>uid</literal> (to get only
notifications when a user changes state in respect to
logins) or <literal>machine</literal> (to get only
notifications when a virtual machine or container is
started or stopped). If notifications shall be
generated in all these conditions, <constant>NULL</constant> may be
passed. Note that in the future additional categories
may be defined. The second parameter returns a monitor
object and needs to be freed with the
<function>sd_login_monitor_unref()</function> call
after use.</para>
<para><function>sd_login_monitor_new()</function> may be used to
monitor login sessions, users, seats, and virtual
machines/containers. Via a monitor object a file descriptor can be
integrated into an application defined event loop which is woken
up each time a user logs in, logs out or a seat is added or
removed, or a session, user, seat or virtual machine/container
changes state otherwise. The first parameter takes a string which
can be <literal>seat</literal> (to get only notifications about
seats being added, removed or changed), <literal>session</literal>
(to get only notifications about sessions being created or removed
or changed), <literal>uid</literal> (to get only notifications
when a user changes state in respect to logins) or
<literal>machine</literal> (to get only notifications when a
virtual machine or container is started or stopped). If
notifications shall be generated in all these conditions,
<constant>NULL</constant> may be passed. Note that in the future
additional categories may be defined. The second parameter returns
a monitor object and needs to be freed with the
<function>sd_login_monitor_unref()</function> call after
use.</para>
<para><function>sd_login_monitor_unref()</function>
may be used to destroy a monitor object. Note that
this will invalidate any file descriptor returned by
<function>sd_login_monitor_get_fd()</function>.</para>
<para><function>sd_login_monitor_unref()</function> may be used to
destroy a monitor object. Note that this will invalidate any file
descriptor returned by
<function>sd_login_monitor_get_fd()</function>.</para>
<para><function>sd_login_monitor_flush()</function>
may be used to reset the wakeup state of the monitor
object. Whenever an event causes the monitor to wake
up the event loop via the file descriptor this
function needs to be called to reset the wake-up
state. If this call is not invoked, the file descriptor
will immediately wake up the event loop again.</para>
<para><function>sd_login_monitor_flush()</function> may be used to
reset the wakeup state of the monitor object. Whenever an event
causes the monitor to wake up the event loop via the file
descriptor this function needs to be called to reset the wake-up
state. If this call is not invoked, the file descriptor will
immediately wake up the event loop again.</para>
<para><function>sd_login_monitor_get_fd()</function>
may be used to retrieve the file descriptor of the
monitor object that may be integrated in an
application defined event loop, based around
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>
or a similar interface. The application should include
the returned file descriptor as wake-up source for the
events mask returned by
<function>sd_login_monitor_get_events()</function>. It
should pass a timeout value as returned by
<function>sd_login_monitor_get_timeout()</function>. Whenever
a wake-up is triggered the file descriptor needs to be
reset via
<function>sd_login_monitor_flush()</function>. An
application needs to reread the login state with a
function like
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or similar to determine what changed.</para>
<para><function>sd_login_monitor_get_fd()</function> may be used
to retrieve the file descriptor of the monitor object that may be
integrated in an application defined event loop, based around
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>
or a similar interface. The application should include the
returned file descriptor as wake-up source for the events mask
returned by <function>sd_login_monitor_get_events()</function>. It
should pass a timeout value as returned by
<function>sd_login_monitor_get_timeout()</function>. Whenever a
wake-up is triggered the file descriptor needs to be reset via
<function>sd_login_monitor_flush()</function>. An application
needs to reread the login state with a function like
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>
or similar to determine what changed.</para>
<para><function>sd_login_monitor_get_events()</function>
will return the <function>poll()</function> mask to
wait for. This function will return a combination of
<constant>POLLIN</constant>, <constant>POLLOUT</constant>
and similar to fill into the
<literal>.events</literal> field of <varname>struct
pollfd</varname>.</para>
<para><function>sd_login_monitor_get_events()</function> will
return the <function>poll()</function> mask to wait for. This
function will return a combination of <constant>POLLIN</constant>,
<constant>POLLOUT</constant> and similar to fill into the
<literal>.events</literal> field of <varname>struct
pollfd</varname>.</para>
<para><function>sd_login_monitor_get_timeout()</function>
will return a timeout value for usage in
<function>poll()</function>. This returns a value in
microseconds since the epoch of <constant>CLOCK_MONOTONIC</constant>
for timing out <function>poll()</function> in
<varname>timeout_usec</varname>. See
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details about
<constant>CLOCK_MONOTONIC</constant>. If there is no
timeout to wait for this will fill in
<constant>(uint64_t) -1</constant> instead. Note that
<function>poll()</function> takes a relative timeout
in milliseconds rather than an absolute timeout in
microseconds. To convert the absolute 'us' timeout into
relative 'ms', use code like the following:</para>
<para><function>sd_login_monitor_get_timeout()</function> will
return a timeout value for usage in <function>poll()</function>.
This returns a value in microseconds since the epoch of
<constant>CLOCK_MONOTONIC</constant> for timing out
<function>poll()</function> in <varname>timeout_usec</varname>.
See
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
for details about <constant>CLOCK_MONOTONIC</constant>. If there
is no timeout to wait for this will fill in <constant>(uint64_t)
-1</constant> instead. Note that <function>poll()</function> takes
a relative timeout in milliseconds rather than an absolute timeout
in microseconds. To convert the absolute 'us' timeout into
relative 'ms', use code like the following:</para>
<programlisting>uint64_t t;
<programlisting>uint64_t t;
int msec;
sd_login_monitor_get_timeout(m, &amp;t);
if (t == (uint64_t) -1)
msec = -1;
msec = -1;
else {
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
struct timespec ts;
uint64_t n;
clock_getttime(CLOCK_MONOTONIC, &amp;ts);
n = (uint64_t) ts.tv_sec * 1000000 + ts.tv_nsec / 1000;
msec = t > n ? (int) ((t - n + 999) / 1000) : 0;
}</programlisting>
<para>The code above does not do any error checking
for brevity's sake. The calculated <varname>msec</varname>
integer can be passed directly as
<function>poll()</function>'s timeout
parameter.</para>
</refsect1>
<para>The code above does not do any error checking for brevity's
sake. The calculated <varname>msec</varname> integer can be passed
directly as <function>poll()</function>'s timeout
parameter.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success,
<function>sd_login_monitor_new()</function>,
<function>sd_login_monitor_flush()</function> and
<function>sd_login_monitor_get_timeout()</function>
return 0 or a positive integer. On success,
<function>sd_login_monitor_get_fd()</function> returns
a Unix file descriptor. On success,
<function>sd_login_monitor_get_events()</function>
returns a combination of <constant>POLLIN</constant>,
<constant>POLLOUT</constant> and suchlike. On failure,
these calls return a negative errno-style error
code.</para>
<para>On success,
<function>sd_login_monitor_new()</function>,
<function>sd_login_monitor_flush()</function> and
<function>sd_login_monitor_get_timeout()</function>
return 0 or a positive integer. On success,
<function>sd_login_monitor_get_fd()</function> returns
a Unix file descriptor. On success,
<function>sd_login_monitor_get_events()</function>
returns a combination of <constant>POLLIN</constant>,
<constant>POLLOUT</constant> and suchlike. On failure,
these calls return a negative errno-style error
code.</para>
<para><function>sd_login_monitor_unref()</function>
always returns <constant>NULL</constant>.</para>
</refsect1>
<para><function>sd_login_monitor_unref()</function>
always returns <constant>NULL</constant>.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_login_monitor_new()</function>,
<function>sd_login_monitor_unref()</function>,
<function>sd_login_monitor_flush()</function>,
<function>sd_login_monitor_get_fd()</function>,
<function>sd_login_monitor_get_events()</function> and
<function>sd_login_monitor_get_timeout()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_login_monitor_new()</function>,
<function>sd_login_monitor_unref()</function>,
<function>sd_login_monitor_flush()</function>,
<function>sd_login_monitor_get_fd()</function>,
<function>sd_login_monitor_get_events()</function> and
<function>sd_login_monitor_get_timeout()</function>
interfaces are available as a shared library, which can be
compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_get_seats</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>poll</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,104 +23,101 @@
<refentry id="sd_machine_get_class">
<refentryinfo>
<title>sd_machine_get_class</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_machine_get_class</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_machine_get_class</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_machine_get_class</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_machine_get_class</refname>
<refname>sd_machine_get_ifindices</refname>
<refpurpose>Determine the class and network interface
indices of a locally running virtual machine or
container.</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_machine_get_class</refname>
<refname>sd_machine_get_ifindices</refname>
<refpurpose>Determine the class and network interface indices of a
locally running virtual machine or container.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_machine_get_class</function></funcdef>
<paramdef>const char* <parameter>machine</parameter></paramdef>
<paramdef>char *<parameter>class</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_machine_get_class</function></funcdef>
<paramdef>const char* <parameter>machine</parameter></paramdef>
<paramdef>char *<parameter>class</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_machine_get_ifindices</function></funcdef>
<paramdef>const char* <parameter>machine</parameter></paramdef>
<paramdef>int **<parameter>ifindices</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_machine_get_ifindices</function></funcdef>
<paramdef>const char* <parameter>machine</parameter></paramdef>
<paramdef>int **<parameter>ifindices</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_machine_get_class()</function> may
be used to determine the class of a locally running
virtual machine or container that is registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. The
string returned is either <literal>vm</literal> or
<literal>container</literal>. The returned string
needs to be freed with the libc <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_machine_get_class()</function> may be used to
determine the class of a locally running virtual machine or
container that is registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
The string returned is either <literal>vm</literal> or
<literal>container</literal>. The returned string needs to be
freed with the libc <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_machine_get_ifindices()</function>
may be used to determine the numeric indices of the
network interfaces on the host that are pointing
towards the specified locally running virtual machine
or container that is registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>. The
returned array needs to be freed with the libc
<citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
</refsect1>
<para><function>sd_machine_get_ifindices()</function> may be used
to determine the numeric indices of the network interfaces on the
host that are pointing towards the specified locally running
virtual machine or container that is registered with
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
The returned array needs to be freed with the libc <citerefentry
project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<para>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error
code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_machine_get_class()</function> and
<function>sd_machine_get_ifindices()</function> interfaces are
available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_machine_get_class()</function> and
<function>sd_machine_get_ifindices()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_machine_name</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,407 +22,355 @@
-->
<refentry id="sd_notify"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_notify</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_notify</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_notify</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_notify</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_notify</refname>
<refname>sd_notifyf</refname>
<refname>sd_pid_notify</refname>
<refname>sd_pid_notifyf</refname>
<refname>sd_pid_notify_with_fds</refname>
<refpurpose>Notify service manager about start-up completion and other service status changes</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_notify</refname>
<refname>sd_notifyf</refname>
<refname>sd_pid_notify</refname>
<refname>sd_pid_notifyf</refname>
<refname>sd_pid_notify_with_fds</refname>
<refpurpose>Notify service manager about start-up completion and other service status changes</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_notify</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_notify</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_notifyf</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_notifyf</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_notify</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_notify</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_notifyf</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_notifyf</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>format</parameter></paramdef>
<paramdef>...</paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_notify_with_fds</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
<paramdef>const int *<parameter>fds</parameter></paramdef>
<paramdef>unsigned <parameter>n_fds</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_pid_notify_with_fds</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>const char *<parameter>state</parameter></paramdef>
<paramdef>const int *<parameter>fds</parameter></paramdef>
<paramdef>unsigned <parameter>n_fds</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_notify()</function> may be called
by a service to notify the service manager about
state changes. It can be used to send arbitrary
information, encoded in an environment-block-like
string. Most importantly it can be used for start-up
completion notification.</para>
<refsect1>
<title>Description</title>
<para><function>sd_notify()</function> may be called by a service
to notify the service manager about state changes. It can be used
to send arbitrary information, encoded in an
environment-block-like string. Most importantly it can be used for
start-up completion notification.</para>
<para>If the <parameter>unset_environment</parameter>
parameter is non-zero, <function>sd_notify()</function>
will unset the <varname>$NOTIFY_SOCKET</varname>
environment variable before returning (regardless of
whether the function call itself succeeded or
not). Further calls to
<function>sd_notify()</function> will then fail, but
the variable is no longer inherited by child
processes.</para>
<para>If the <parameter>unset_environment</parameter> parameter is
non-zero, <function>sd_notify()</function> will unset the
<varname>$NOTIFY_SOCKET</varname> environment variable before
returning (regardless of whether the function call itself
succeeded or not). Further calls to
<function>sd_notify()</function> will then fail, but the variable
is no longer inherited by child processes.</para>
<para>The <parameter>state</parameter> parameter
should contain a newline-separated list of variable
assignments, similar in style to an environment
block. A trailing newline is implied if none is
specified. The string may contain any kind of variable
assignments, but the following shall be considered
well-known:</para>
<para>The <parameter>state</parameter> parameter should contain a
newline-separated list of variable assignments, similar in style
to an environment block. A trailing newline is implied if none is
specified. The string may contain any kind of variable
assignments, but the following shall be considered
well-known:</para>
<variablelist>
<varlistentry>
<term>READY=1</term>
<variablelist>
<varlistentry>
<term>READY=1</term>
<listitem><para>Tells the service
manager that service startup is
finished. This is only used by systemd
if the service definition file has
Type=notify set. Since there is little
value in signaling non-readiness, the
only value services should send is
<literal>READY=1</literal>
(i.e. <literal>READY=0</literal> is
not defined).</para></listitem>
</varlistentry>
<listitem><para>Tells the service manager that service startup
is finished. This is only used by systemd if the service
definition file has Type=notify set. Since there is little
value in signaling non-readiness, the only value services
should send is <literal>READY=1</literal> (i.e.
<literal>READY=0</literal> is not defined).</para></listitem>
</varlistentry>
<varlistentry>
<term>RELOADING=1</term>
<varlistentry>
<term>RELOADING=1</term>
<listitem><para>Tells the service manager
that the service is reloading its
configuration. This is useful to allow
the service manager to track the service's
internal state, and present it to the
user. Note that a service that sends
this notification must also send a
<literal>READY=1</literal>
notification when it completed
reloading its
configuration.</para></listitem>
</varlistentry>
<listitem><para>Tells the service manager that the service is
reloading its configuration. This is useful to allow the
service manager to track the service's internal state, and
present it to the user. Note that a service that sends this
notification must also send a <literal>READY=1</literal>
notification when it completed reloading its
configuration.</para></listitem>
</varlistentry>
<varlistentry>
<term>STOPPING=1</term>
<varlistentry>
<term>STOPPING=1</term>
<listitem><para>Tells the service manager
that the service is beginning its
shutdown. This is useful to allow the
service manager to track the service's
internal state, and present it to the
user.</para></listitem>
</varlistentry>
<listitem><para>Tells the service manager that the service is
beginning its shutdown. This is useful to allow the service
manager to track the service's internal state, and present it
to the user.</para></listitem>
</varlistentry>
<varlistentry>
<term>STATUS=...</term>
<varlistentry>
<term>STATUS=...</term>
<listitem><para>Passes a single-line
UTF-8 status string back to the service manager
that describes the service state. This
is free-form and can be used for
various purposes: general state
feedback, fsck-like programs could
pass completion percentages and
failing programs could pass a human
readable error message. Example:
<literal>STATUS=Completed 66% of file
system
check...</literal></para></listitem>
</varlistentry>
<listitem><para>Passes a single-line UTF-8 status string back
to the service manager that describes the service state. This
is free-form and can be used for various purposes: general
state feedback, fsck-like programs could pass completion
percentages and failing programs could pass a human readable
error message. Example: <literal>STATUS=Completed 66% of file
system check...</literal></para></listitem>
</varlistentry>
<varlistentry>
<term>ERRNO=...</term>
<varlistentry>
<term>ERRNO=...</term>
<listitem><para>If a service fails, the
errno-style error code, formatted as
string. Example: <literal>ERRNO=2</literal> for
ENOENT.</para></listitem>
</varlistentry>
<listitem><para>If a service fails, the errno-style error
code, formatted as string. Example: <literal>ERRNO=2</literal>
for ENOENT.</para></listitem>
</varlistentry>
<varlistentry>
<term>BUSERROR=...</term>
<varlistentry>
<term>BUSERROR=...</term>
<listitem><para>If a service fails, the
D-Bus error-style error code. Example:
<literal>BUSERROR=org.freedesktop.DBus.Error.TimedOut</literal></para></listitem>
</varlistentry>
<listitem><para>If a service fails, the D-Bus error-style
error code. Example:
<literal>BUSERROR=org.freedesktop.DBus.Error.TimedOut</literal></para></listitem>
</varlistentry>
<varlistentry>
<term>MAINPID=...</term>
<varlistentry>
<term>MAINPID=...</term>
<listitem><para>The main process ID (PID) of the
service, in case the service manager did
not fork off the process
itself. Example:
<literal>MAINPID=4711</literal></para></listitem>
</varlistentry>
<listitem><para>The main process ID (PID) of the service, in
case the service manager did not fork off the process itself.
Example: <literal>MAINPID=4711</literal></para></listitem>
</varlistentry>
<varlistentry>
<term>WATCHDOG=1</term>
<varlistentry>
<term>WATCHDOG=1</term>
<listitem><para>Tells the service manager to
update the watchdog timestamp. This is
the keep-alive ping that services need
to issue in regular intervals if
<varname>WatchdogSec=</varname> is
enabled for it. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information how to enable this
functionality and
<citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for the details of how the service can
check if the the watchdog is enabled.
</para></listitem>
</varlistentry>
<listitem><para>Tells the service manager to update the
watchdog timestamp. This is the keep-alive ping that services
need to issue in regular intervals if
<varname>WatchdogSec=</varname> is enabled for it. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information how to enable this functionality and
<citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for the details of how the service can check if the the
watchdog is enabled. </para></listitem>
</varlistentry>
<varlistentry>
<term>FDSTORE=1</term>
<varlistentry>
<term>FDSTORE=1</term>
<listitem><para>Stores additional file
descriptors in the service
manager. File descriptors sent this
way will be maintained per-service by
the service manager and be passed
again using the usual file descriptor
passing logic on the next invocation
of the service (see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>). This
is useful for implementing service
restart schemes where services
serialize their state to
<filename>/run</filename>, push their
file descriptors to the system
manager, and are then restarted,
retrieving their state again via
socket passing and
<filename>/run</filename>. Note that
the service manager will accept
messages for a service only if
<varname>FileDescriptorStoreMax=</varname>
is set to non-zero for it (defaults to
zero). See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details. Multiple arrays of file
descriptors may be sent in separate
messages, in which case the arrays are
combined. Note that the service
manager removes duplicate file
descriptors before passing them to the
service. Use
<function>sd_pid_notify_with_fds()</function>
to send messages with
<literal>FDSTORE=1</literal>, see
below.</para></listitem>
</varlistentry>
<listitem><para>Stores additional file descriptors in the
service manager. File descriptors sent this way will be
maintained per-service by the service manager and be passed
again using the usual file descriptor passing logic on the
next invocation of the service (see
<citerefentry><refentrytitle>sd_listen_fds</refentrytitle><manvolnum>3</manvolnum></citerefentry>).
This is useful for implementing service restart schemes where
services serialize their state to <filename>/run</filename>,
push their file descriptors to the system manager, and are
then restarted, retrieving their state again via socket
passing and <filename>/run</filename>. Note that the service
manager will accept messages for a service only if
<varname>FileDescriptorStoreMax=</varname> is set to non-zero
for it (defaults to zero). See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details. Multiple arrays of file descriptors may be sent
in separate messages, in which case the arrays are combined.
Note that the service manager removes duplicate file
descriptors before passing them to the service. Use
<function>sd_pid_notify_with_fds()</function> to send messages
with <literal>FDSTORE=1</literal>, see
below.</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
<para>It is recommended to prefix variable names that
are not listed above with <varname>X_</varname> to
avoid namespace clashes.</para>
<para>It is recommended to prefix variable names that are not
listed above with <varname>X_</varname> to avoid namespace
clashes.</para>
<para>Note that systemd will accept status data sent
from a service only if the
<varname>NotifyAccess=</varname> option is correctly
set in the service definition file. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
<para>Note that systemd will accept status data sent from a
service only if the <varname>NotifyAccess=</varname> option is
correctly set in the service definition file. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
<para><function>sd_notifyf()</function> is similar to
<function>sd_notify()</function> but takes a
<function>printf()</function>-like format string plus
arguments.</para>
<para><function>sd_notifyf()</function> is similar to
<function>sd_notify()</function> but takes a
<function>printf()</function>-like format string plus
arguments.</para>
<para><function>sd_pid_notify()</function> and
<function>sd_pid_notifyf()</function> are similar to
<function>sd_notify()</function> and
<function>sd_notifyf()</function> but take a process
ID (PID) to use as originating PID for the message as
first argument. This is useful to send notification
messages on behalf of other processes, provided the
appropriate privileges are available. If the PID
argument is specified as 0 the process ID of the
calling process is used, in which case the calls are
fully equivalent to <function>sd_notify()</function>
and <function>sd_notifyf()</function>.</para>
<para><function>sd_pid_notify()</function> and
<function>sd_pid_notifyf()</function> are similar to
<function>sd_notify()</function> and
<function>sd_notifyf()</function> but take a process ID (PID) to
use as originating PID for the message as first argument. This is
useful to send notification messages on behalf of other processes,
provided the appropriate privileges are available. If the PID
argument is specified as 0 the process ID of the calling process
is used, in which case the calls are fully equivalent to
<function>sd_notify()</function> and
<function>sd_notifyf()</function>.</para>
<para><function>sd_pid_notify_with_fds()</function> is
similar to <function>sd_pid_notify()</function> but
takes an additional array of file descriptors. These
file descriptors are sent along the notification
message to the service manager. This is particularly
useful for sending <literal>FDSTORE=1</literal>
messages, as described above. The additional arguments
are a pointer to the file descriptor array plus the
number of file descriptors in the array. If the number
of file descriptors is passed as 0, the call is fully
equivalent to <function>sd_pid_notify()</function>,
i.e. no file descriptors are passed. Note that sending
file descriptors to the service manager on messages
that do not expect them (i.e. without
<literal>FDSTORE=1</literal>) they are immediately
closed on reception.</para>
</refsect1>
<para><function>sd_pid_notify_with_fds()</function> is similar to
<function>sd_pid_notify()</function> but takes an additional array
of file descriptors. These file descriptors are sent along the
notification message to the service manager. This is particularly
useful for sending <literal>FDSTORE=1</literal> messages, as
described above. The additional arguments are a pointer to the
file descriptor array plus the number of file descriptors in the
array. If the number of file descriptors is passed as 0, the call
is fully equivalent to <function>sd_pid_notify()</function>, i.e.
no file descriptors are passed. Note that sending file descriptors
to the service manager on messages that do not expect them (i.e.
without <literal>FDSTORE=1</literal>) they are immediately closed
on reception.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On failure, these calls return a negative
errno-style error code. If
<varname>$NOTIFY_SOCKET</varname> was not set and
hence no status data could be sent, 0 is returned. If
the status was sent, these functions return with a
positive return value. In order to support both, init
systems that implement this scheme and those which
do not, it is generally recommended to ignore the return
value of this call.</para>
</refsect1>
<para>On failure, these calls return a negative errno-style error
code. If <varname>$NOTIFY_SOCKET</varname> was not set and hence
no status data could be sent, 0 is returned. If the status was
sent, these functions return with a positive return value. In
order to support both, init systems that implement this scheme and
those which do not, it is generally recommended to ignore the
return value of this call.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<para>Internally, these functions send a single
datagram with the state string as payload to the
<constant>AF_UNIX</constant> socket referenced in the
<varname>$NOTIFY_SOCKET</varname> environment
variable. If the first character of
<varname>$NOTIFY_SOCKET</varname> is <literal>@</literal>, the string is
understood as Linux abstract namespace socket. The
datagram is accompanied by the process credentials of
the sending service, using SCM_CREDENTIALS.</para>
</refsect1>
<para>Internally, these functions send a single datagram with the
state string as payload to the <constant>AF_UNIX</constant> socket
referenced in the <varname>$NOTIFY_SOCKET</varname> environment
variable. If the first character of
<varname>$NOTIFY_SOCKET</varname> is <literal>@</literal>, the
string is understood as Linux abstract namespace socket. The
datagram is accompanied by the process credentials of the sending
service, using SCM_CREDENTIALS.</para>
</refsect1>
<refsect1>
<title>Environment</title>
<refsect1>
<title>Environment</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$NOTIFY_SOCKET</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$NOTIFY_SOCKET</varname></term>
<listitem><para>Set by the service manager
for supervised processes for status
and start-up completion
notification. This environment variable
specifies the socket
<function>sd_notify()</function> talks
to. See above for details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Set by the service manager for supervised
processes for status and start-up completion notification.
This environment variable specifies the socket
<function>sd_notify()</function> talks to. See above for
details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<example>
<title>Start-up Notification</title>
<example>
<title>Start-up Notification</title>
<para>When a service finished starting up, it
might issue the following call to notify
the service manager:</para>
<para>When a service finished starting up, it might issue the
following call to notify the service manager:</para>
<programlisting>sd_notify(0, "READY=1");</programlisting>
</example>
<programlisting>sd_notify(0, "READY=1");</programlisting>
</example>
<example>
<title>Extended Start-up Notification</title>
<example>
<title>Extended Start-up Notification</title>
<para>A service could send the following after
completing initialization:</para>
<para>A service could send the following after completing
initialization:</para>
<programlisting>sd_notifyf(0, "READY=1\n"
"STATUS=Processing requests...\n"
"MAINPID=%lu",
(unsigned long) getpid());</programlisting>
</example>
<programlisting>sd_notifyf(0, "READY=1\n"
"STATUS=Processing requests...\n"
"MAINPID=%lu",
(unsigned long) getpid());</programlisting>
</example>
<example>
<title>Error Cause Notification</title>
<example>
<title>Error Cause Notification</title>
<para>A service could send the following shortly before exiting, on failure:</para>
<para>A service could send the following shortly before exiting, on failure:</para>
<programlisting>sd_notifyf(0, "STATUS=Failed to start up: %s\n"
"ERRNO=%i",
strerror(errno),
errno);</programlisting>
</example>
<programlisting>sd_notifyf(0, "STATUS=Failed to start up: %s\n"
"ERRNO=%i",
strerror(errno),
errno);</programlisting>
</example>
<example>
<title>Store a File Descriptor in the Service Manager</title>
<example>
<title>Store a File Descriptor in the Service Manager</title>
<para>To store an open file descriptor in the
service manager, in order to continue
operation after a service restart without
losing state use
<literal>FDSTORE=1</literal>:</para>
<para>To store an open file descriptor in the service manager,
in order to continue operation after a service restart without
losing state use <literal>FDSTORE=1</literal>:</para>
<programlisting>sd_pid_notify_with_fds(0, 0, "FDSTORE=1", &amp;fd, 1);</programlisting>
</example>
</refsect1>
<programlisting>sd_pid_notify_with_fds(0, 0, "FDSTORE=1", &amp;fd, 1);</programlisting>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_watchdog_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,250 +23,239 @@
<refentry id="sd_pid_get_session" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_pid_get_session</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_pid_get_session</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_pid_get_session</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_pid_get_session</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_pid_get_session</refname>
<refname>sd_pid_get_unit</refname>
<refname>sd_pid_get_user_unit</refname>
<refname>sd_pid_get_owner_uid</refname>
<refname>sd_pid_get_machine_name</refname>
<refname>sd_pid_get_slice</refname>
<refname>sd_peer_get_session</refname>
<refname>sd_peer_get_unit</refname>
<refname>sd_peer_get_user_unit</refname>
<refname>sd_peer_get_owner_uid</refname>
<refname>sd_peer_get_machine_name</refname>
<refname>sd_peer_get_slice</refname>
<refpurpose>Determine session, service, owner of a
session, container/VM or slice of a specific
PID or socket peer</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_pid_get_session</refname>
<refname>sd_pid_get_unit</refname>
<refname>sd_pid_get_user_unit</refname>
<refname>sd_pid_get_owner_uid</refname>
<refname>sd_pid_get_machine_name</refname>
<refname>sd_pid_get_slice</refname>
<refname>sd_peer_get_session</refname>
<refname>sd_peer_get_unit</refname>
<refname>sd_peer_get_user_unit</refname>
<refname>sd_peer_get_owner_uid</refname>
<refname>sd_peer_get_machine_name</refname>
<refname>sd_peer_get_slice</refname>
<refpurpose>Determine session, service, owner of a
session, container/VM or slice of a specific
PID or socket peer</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_pid_get_session</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_session</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_user_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_user_unit</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_owner_uid</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_owner_uid</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_machine_name</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_machine_name</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_slice</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>slice</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_pid_get_slice</function></funcdef>
<paramdef>pid_t <parameter>pid</parameter></paramdef>
<paramdef>char **<parameter>slice</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_session</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_session</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_unit</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_unit</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_user_unit</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_user_unit</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>unit</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_owner_uid</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_owner_uid</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_machine_name</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_machine_name</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>name</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_peer_get_slice</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>slice</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_peer_get_slice</function></funcdef>
<paramdef>int <parameter>fd</parameter></paramdef>
<paramdef>char **<parameter>slice</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_pid_get_session()</function> may be
used to determine the login session identifier of a
process identified by the specified process
identifier. The session identifier is a short string,
suitable for usage in file system paths. Note that not
all processes are part of a login session (e.g. system
service processes, user processes that are shared
between multiple sessions of the same user, or kernel
threads). For processes not being part of a login
session this function will fail. The returned string
needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_session()</function> may be used to
determine the login session identifier of a process identified by
the specified process identifier. The session identifier is a
short string, suitable for usage in file system paths. Note that
not all processes are part of a login session (e.g. system service
processes, user processes that are shared between multiple
sessions of the same user, or kernel threads). For processes not
being part of a login session this function will fail. The
returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_unit()</function> may be
used to determine the systemd system unit (i.e. system
service) identifier of a process identified by the
specified PID. The unit name is a short string,
suitable for usage in file system paths. Note that not
all processes are part of a system unit/service
(e.g. user processes, or kernel threads). For
processes not being part of a systemd system unit this
function will fail. (More specifically: this call will
not work for processes that are part of user units,
use <function>sd_pid_get_user_unit()</function> for
that.) The returned string needs to be freed with the
libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_unit()</function> may be used to
determine the systemd system unit (i.e. system service) identifier
of a process identified by the specified PID. The unit name is a
short string, suitable for usage in file system paths. Note that
not all processes are part of a system unit/service (e.g. user
processes, or kernel threads). For processes not being part of a
systemd system unit this function will fail. (More specifically:
this call will not work for processes that are part of user units,
use <function>sd_pid_get_user_unit()</function> for that.) The
returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_user_unit()</function> may
be used to determine the systemd user unit (i.e. user
service) identifier of a process identified by the
specified PID. This is similar to
<function>sd_pid_get_unit()</function> but applies to
user units instead of system units.</para>
<para><function>sd_pid_get_user_unit()</function> may be used to
determine the systemd user unit (i.e. user service) identifier of
a process identified by the specified PID. This is similar to
<function>sd_pid_get_unit()</function> but applies to user units
instead of system units.</para>
<para><function>sd_pid_get_owner_uid()</function> may
be used to determine the Unix user identifier of the
owner of the session of a process identified the
specified PID. Note that this function will succeed
for user processes which are shared between multiple
login sessions of the same user, where
<function>sd_pid_get_session()</function> will
fail. For processes not being part of a login session
and not being a shared process of a user this function
will fail.</para>
<para><function>sd_pid_get_owner_uid()</function> may be used to
determine the Unix user identifier of the owner of the session of
a process identified the specified PID. Note that this function
will succeed for user processes which are shared between multiple
login sessions of the same user, where
<function>sd_pid_get_session()</function> will fail. For processes
not being part of a login session and not being a shared process
of a user this function will fail.</para>
<para><function>sd_pid_get_machine_name()</function>
may be used to determine the name of the VM or
container is a member of. The machine name is a short
string, suitable for usage in file system paths. The
returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_machine_name()</function> may be used
to determine the name of the VM or container is a member of. The
machine name is a short string, suitable for usage in file system
paths. The returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_slice()</function> may be
used to determine the slice unit the process is a
member of. See
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details about slices. The returned string needs to
be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_pid_get_slice()</function> may be used to
determine the slice unit the process is a member of. See
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details about slices. The returned string needs to be freed
with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para>If the <varname>pid</varname> parameter of any
of these functions is passed as 0, the operation is
executed for the calling process.</para>
<para>If the <varname>pid</varname> parameter of any of these
functions is passed as 0, the operation is executed for the
calling process.</para>
<para>The <function>sd_peer_get_session()</function>,
<function>sd_peer_get_unit()</function>,
<function>sd_peer_get_user_unit()</function>,
<function>sd_peer_get_owner_uid()</function>,
<function>sd_peer_get_machine_name()</function> and
<function>sd_peer_get_slice()</function> calls operate
similar to their PID counterparts, but operate on a
connected AF_UNIX socket and retrieve information
about the connected peer process.</para>
</refsect1>
<para>The <function>sd_peer_get_session()</function>,
<function>sd_peer_get_unit()</function>,
<function>sd_peer_get_user_unit()</function>,
<function>sd_peer_get_owner_uid()</function>,
<function>sd_peer_get_machine_name()</function> and
<function>sd_peer_get_slice()</function> calls operate similar to
their PID counterparts, but operate on a connected AF_UNIX socket
and retrieve information about the connected peer process.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success, these calls return 0 or a positive
integer. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<para>On success, these calls return 0 or a positive integer. On
failure, these calls return a negative errno-style error
code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_pid_get_session()</function>,
<function>sd_pid_get_unit()</function>,
<function>sd_pid_get_user_unit()</function>,
<function>sd_pid_get_owner_uid()</function>,
<function>sd_pid_get_machine_name()</function>,
<function>sd_pid_get_slice()</function>,
<function>sd_peer_get_session()</function>,
<function>sd_peer_get_unit()</function>,
<function>sd_peer_get_user_unit()</function>,
<function>sd_peer_get_owner_uid()</function>,
<function>sd_peer_get_machine_name()</function> and
<function>sd_peer_get_slice()</function> interfaces are
available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
<para>The <function>sd_pid_get_session()</function>,
<function>sd_pid_get_unit()</function>,
<function>sd_pid_get_user_unit()</function>,
<function>sd_pid_get_owner_uid()</function>,
<function>sd_pid_get_machine_name()</function>,
<function>sd_pid_get_slice()</function>,
<function>sd_peer_get_session()</function>,
<function>sd_peer_get_unit()</function>,
<function>sd_peer_get_user_unit()</function>,
<function>sd_peer_get_owner_uid()</function>,
<function>sd_peer_get_machine_name()</function> and
<function>sd_peer_get_slice()</function> interfaces are
available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
<para>Note that the login session identifier as
returned by <function>sd_pid_get_session()</function>
is completely unrelated to the process session
identifier as returned by
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>.</para>
</refsect1>
<para>Note that the login session identifier as
returned by <function>sd_pid_get_session()</function>
is completely unrelated to the process session
identifier as returned by
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_is_active</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>getsid</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machined.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,161 +23,153 @@
<refentry id="sd_seat_get_active" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_seat_get_active</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_seat_get_active</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_seat_get_active</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_seat_get_active</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_seat_get_active</refname>
<refname>sd_seat_get_sessions</refname>
<refname>sd_seat_can_multi_session</refname>
<refname>sd_seat_can_tty</refname>
<refname>sd_seat_can_graphical</refname>
<refpurpose>Determine state of a specific seat</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_seat_get_active</refname>
<refname>sd_seat_get_sessions</refname>
<refname>sd_seat_can_multi_session</refname>
<refname>sd_seat_can_tty</refname>
<refname>sd_seat_can_graphical</refname>
<refpurpose>Determine state of a specific seat</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_seat_get_active</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_get_active</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_get_sessions</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
<paramdef>uid_t **<parameter>uid</parameter></paramdef>
<paramdef>unsigned int *<parameter>n_uids</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_get_sessions</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
<paramdef>uid_t **<parameter>uid</parameter></paramdef>
<paramdef>unsigned int *<parameter>n_uids</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_can_multi_session</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_can_multi_session</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_can_tty</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_can_tty</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_seat_can_graphical</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_seat_can_graphical</function></funcdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_seat_get_active()</function> may be
used to determine which session is currently active on
a seat, if there is any. Returns the session
identifier and the user identifier of the Unix user
the session is belonging to. Either the session or the
user identifier parameter can be passed
<constant>NULL</constant>, in case only one of the
parameters shall be queried. The returned string needs
to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_seat_get_active()</function> may be used to
determine which session is currently active on a seat, if there is
any. Returns the session identifier and the user identifier of the
Unix user the session is belonging to. Either the session or the
user identifier parameter can be passed <constant>NULL</constant>,
in case only one of the parameters shall be queried. The returned
string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_seat_get_sessions()</function> may
be used to determine all sessions on the specified
seat. Returns two arrays, one (<constant>NULL</constant> terminated) with
the session identifiers of the sessions and one with
the user identifiers of the Unix users the sessions
belong to. An additional parameter may be used to
return the number of entries in the latter array. The
two arrays and the latter parameter may be passed as
<constant>NULL</constant> in case these values need not to be
determined. The arrays and the strings referenced by
them need to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that instead of an empty array
<constant>NULL</constant> may be returned and should be considered
equivalent to an empty array.</para>
<para><function>sd_seat_get_sessions()</function> may be used to
determine all sessions on the specified seat. Returns two arrays,
one (<constant>NULL</constant> terminated) with the session
identifiers of the sessions and one with the user identifiers of
the Unix users the sessions belong to. An additional parameter may
be used to return the number of entries in the latter array. The
two arrays and the latter parameter may be passed as
<constant>NULL</constant> in case these values need not to be
determined. The arrays and the strings referenced by them need to
be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that instead of an empty array
<constant>NULL</constant> may be returned and should be considered
equivalent to an empty array.</para>
<para><function>sd_seat_can_multi_session()</function>
may be used to determine whether a specific seat is
capable of multi-session, i.e. allows multiple login
sessions in parallel (with only one being active at a
time).</para>
<para><function>sd_seat_can_multi_session()</function> may be used
to determine whether a specific seat is capable of multi-session,
i.e. allows multiple login sessions in parallel (with only one
being active at a time).</para>
<para><function>sd_seat_can_tty()</function> may be
used to determine whether a specific seat provides TTY
functionality, i.e. is useful as a text console.</para>
<para><function>sd_seat_can_tty()</function> may be used to
determine whether a specific seat provides TTY functionality, i.e.
is useful as a text console.</para>
<para><function>sd_seat_can_graphical()</function> may
be used to determine whether a specific seat provides
graphics functionality, i.e. is useful as a graphics
display.</para>
<para><function>sd_seat_can_graphical()</function> may be used to
determine whether a specific seat provides graphics functionality,
i.e. is useful as a graphics display.</para>
<para>If the <varname>seat</varname> parameter of any
of these functions is passed as
<constant>NULL</constant>, the operation is executed
for the seat of the session of the calling process, if
there is any.</para>
</refsect1>
<para>If the <varname>seat</varname> parameter of any of these
functions is passed as <constant>NULL</constant>, the operation is
executed for the seat of the session of the calling process, if
there is any.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para> On success,
<function>sd_seat_get_active()</function>
returns 0 or a positive integer. On success,
<function>sd_seat_get_sessions()</function> returns
the number of entries in the session identifier
array. If the test succeeds,
<function>sd_seat_can_multi_session</function>,
<function>sd_seat_can_tty</function> and
<function>sd_seat_can_graphical</function> return a
positive integer, if it fails 0. On failure, these
calls return a negative errno-style error code.</para>
</refsect1>
<para> On success, <function>sd_seat_get_active()</function>
returns 0 or a positive integer. On success,
<function>sd_seat_get_sessions()</function> returns the number of
entries in the session identifier array. If the test succeeds,
<function>sd_seat_can_multi_session</function>,
<function>sd_seat_can_tty</function> and
<function>sd_seat_can_graphical</function> return a positive
integer, if it fails 0. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_seat_get_active()</function>,
<function>sd_seat_get_sessions()</function>,
<function>sd_seat_can_multi_session()</function>,
<function>sd_seat_can_tty()</function> and
<function>sd_seat_can_grapical()</function> interfaces
are available as a shared library, which can be compiled
and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_seat_get_active()</function>,
<function>sd_seat_get_sessions()</function>,
<function>sd_seat_can_multi_session()</function>,
<function>sd_seat_can_tty()</function> and
<function>sd_seat_can_grapical()</function> interfaces are
available as a shared library, which can be compiled and linked to
with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_session_get_seat</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,319 +23,300 @@
<refentry id="sd_session_is_active" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_session_is_active</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_session_is_active</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_session_is_active</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_session_is_active</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_session_is_active</refname>
<refname>sd_session_is_remote</refname>
<refname>sd_session_get_state</refname>
<refname>sd_session_get_uid</refname>
<refname>sd_session_get_seat</refname>
<refname>sd_session_get_service</refname>
<refname>sd_session_get_type</refname>
<refname>sd_session_get_class</refname>
<refname>sd_session_get_desktop</refname>
<refname>sd_session_get_display</refname>
<refname>sd_session_get_tty</refname>
<refname>sd_session_get_vt</refname>
<refname>sd_session_get_remote_host</refname>
<refname>sd_session_get_remote_user</refname>
<refpurpose>Determine state of a specific session</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_session_is_active</refname>
<refname>sd_session_is_remote</refname>
<refname>sd_session_get_state</refname>
<refname>sd_session_get_uid</refname>
<refname>sd_session_get_seat</refname>
<refname>sd_session_get_service</refname>
<refname>sd_session_get_type</refname>
<refname>sd_session_get_class</refname>
<refname>sd_session_get_desktop</refname>
<refname>sd_session_get_display</refname>
<refname>sd_session_get_tty</refname>
<refname>sd_session_get_vt</refname>
<refname>sd_session_get_remote_host</refname>
<refname>sd_session_get_remote_user</refname>
<refpurpose>Determine state of a specific session</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_session_is_active</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_is_active</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_is_remote</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_is_remote</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_state</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_state</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_uid</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_uid</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>uid_t *<parameter>uid</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_seat</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_seat</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_service</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>service</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_service</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>service</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_type</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>type</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_type</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>type</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_class</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>class</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_class</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>class</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_desktop</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>desktop</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_desktop</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>desktop</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_display</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>display</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_display</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>display</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_remote_host</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>remote_host</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_remote_host</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>remote_host</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_remote_user</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>remote_user</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_remote_user</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>remote_user</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_tty</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>tty</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_tty</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>char **<parameter>tty</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_session_get_vt</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>unsigned int *<parameter>vt</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_session_get_vt</function></funcdef>
<paramdef>const char *<parameter>session</parameter></paramdef>
<paramdef>unsigned int *<parameter>vt</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_session_is_active()</function> may
be used to determine whether the session identified by
the specified session identifier is currently active
(i.e. currently in the foreground and available for
user input) or not.</para>
<para><function>sd_session_is_active()</function> may be used to
determine whether the session identified by the specified session
identifier is currently active (i.e. currently in the foreground
and available for user input) or not.</para>
<para><function>sd_session_is_remote()</function> may
be used to determine whether the session identified by
the specified session identifier is a remote session
(i.e. its remote host is known) or not.</para>
<para><function>sd_session_is_remote()</function> may be used to
determine whether the session identified by the specified session
identifier is a remote session (i.e. its remote host is known) or
not.</para>
<para><function>sd_session_get_state()</function> may
be used to determine the state of the session
identified by the specified session identifier. The
following states are currently known:
<literal>online</literal> (session logged in, but
session not active, i.e. not in the foreground),
<literal>active</literal> (session logged in and
active, i.e. in the foreground),
<literal>closing</literal> (session nominally logged
out, but some processes belonging to it are still
around). In the future additional states might be
defined, client code should be written to be robust in
regards to additional state strings being
returned. This function is a more generic version of
<function>sd_session_is_active()</function>. The returned
string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_state()</function> may be used to
determine the state of the session identified by the specified
session identifier. The following states are currently known:
<literal>online</literal> (session logged in, but session not
active, i.e. not in the foreground), <literal>active</literal>
(session logged in and active, i.e. in the foreground),
<literal>closing</literal> (session nominally logged out, but some
processes belonging to it are still around). In the future
additional states might be defined, client code should be written
to be robust in regards to additional state strings being
returned. This function is a more generic version of
<function>sd_session_is_active()</function>. The returned string
needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_uid()</function> may be
used to determine the user identifier of the Unix user the session
identified by the specified session identifier belongs
to.</para>
<para><function>sd_session_get_uid()</function> may be used to
determine the user identifier of the Unix user the session
identified by the specified session identifier belongs to.</para>
<para><function>sd_session_get_seat()</function> may
be used to determine the seat identifier of the seat
the session identified by the specified session
identifier belongs to. Note that not all sessions are
attached to a seat, this call will fail for them. The
returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_seat()</function> may be used to
determine the seat identifier of the seat the session identified
by the specified session identifier belongs to. Note that not all
sessions are attached to a seat, this call will fail for them. The
returned string needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_service()</function>
may be used to determine the name of the service (as
passed during PAM session setup) that registered the
session identified by the specified session
identifier. The returned string needs to be freed with
the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_service()</function> may be used to
determine the name of the service (as passed during PAM session
setup) that registered the session identified by the specified
session identifier. The returned string needs to be freed with the
libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_type()</function> may
be used to determine the type of the session
identified by the specified session identifier. The
returned string is one of <literal>x11</literal>,
<literal>wayland</literal>, <literal>tty</literal>,
<literal>mir</literal> or <literal>unspecified</literal> and
needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_type()</function> may be used to
determine the type of the session identified by the specified
session identifier. The returned string is one of
<literal>x11</literal>, <literal>wayland</literal>,
<literal>tty</literal>, <literal>mir</literal> or
<literal>unspecified</literal> and needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_class()</function> may
be used to determine the class of the session
identified by the specified session identifier. The
returned string is one of <literal>user</literal>,
<literal>greeter</literal>,
<literal>lock-screen</literal>, or
<literal>background</literal> and needs to be freed
with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_class()</function> may be used to
determine the class of the session identified by the specified
session identifier. The returned string is one of
<literal>user</literal>, <literal>greeter</literal>,
<literal>lock-screen</literal>, or <literal>background</literal>
and needs to be freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_desktop()</function> may
be used to determine the brand of the desktop running on
the session identified by the specified session identifier.
This field can be set freely by desktop environments and
does not follow any special formatting. However, desktops
are strongly recommended to use the same identifiers and
capitalization as for
<varname>$XDG_CURRENT_DESKTOP</varname>, as defined by
the <ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop
Entry
Specification</ulink>. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_desktop()</function> may be used to
determine the brand of the desktop running on the session
identified by the specified session identifier. This field can be
set freely by desktop environments and does not follow any special
formatting. However, desktops are strongly recommended to use the
same identifiers and capitalization as for
<varname>$XDG_CURRENT_DESKTOP</varname>, as defined by the <ulink
url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop
Entry Specification</ulink>. The returned string needs to be freed
with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_display()</function>
may be used to determine the X11 display of the
session identified by the specified session
identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_display()</function> may be used to
determine the X11 display of the session identified by the
specified session identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_remote_host()</function>
may be used to determine the remote hostname of the
session identified by the specified session
identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_remote_host()</function> may be
used to determine the remote hostname of the session identified by
the specified session identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_remote_user()</function>
may be used to determine the remote username of the
session identified by the specified session
identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that this value is rarely known
to the system, and even then should not be relied on.</para>
<para><function>sd_session_get_remote_user()</function> may be
used to determine the remote username of the session identified by
the specified session identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use. Note that this value is rarely known to the
system, and even then should not be relied on.</para>
<para><function>sd_session_get_tty()</function>
may be used to determine the TTY device of the
session identified by the specified session
identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_tty()</function> may be used to
determine the TTY device of the session identified by the
specified session identifier. The returned string needs to be
freed with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_session_get_vt()</function>
may be used to determine the VT number of the
session identified by the specified session
identifier. This function will return an error if
the seat does not support VTs.</para>
<para><function>sd_session_get_vt()</function> may be used to
determine the VT number of the session identified by the specified
session identifier. This function will return an error if the seat
does not support VTs.</para>
<para>If the <varname>session</varname> parameter of
any of these functions is passed as
<constant>NULL</constant>, the operation is executed
for the session the calling process is a member of, if
there is any.</para>
</refsect1>
<para>If the <varname>session</varname> parameter of any of these
functions is passed as <constant>NULL</constant>, the operation is
executed for the session the calling process is a member of, if
there is any.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>If the test succeeds,
<function>sd_session_is_active()</function> and
<function>sd_session_is_remote()</function> return a
positive integer; if it fails, 0. On success,
<function>sd_session_get_state()</function>,
<function>sd_session_get_uid()</function>,
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function>,
<function>sd_session_get_remote_user()</function>,
<function>sd_session_get_remote_host()</function> and
<function>sd_session_get_tty()</function> return 0 or
a positive integer. On failure, these calls return a
negative errno-style error code.</para>
</refsect1>
<para>If the test succeeds,
<function>sd_session_is_active()</function> and
<function>sd_session_is_remote()</function> return a
positive integer; if it fails, 0. On success,
<function>sd_session_get_state()</function>,
<function>sd_session_get_uid()</function>,
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function>,
<function>sd_session_get_remote_user()</function>,
<function>sd_session_get_remote_host()</function> and
<function>sd_session_get_tty()</function> return 0 or
a positive integer. On failure, these calls return a
negative errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>The <function>sd_session_is_active()</function>,
<function>sd_session_get_state()</function>,
<function>sd_session_get_uid()</function>,
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function>,
<function>sd_session_get_remote_host()</function>,
<function>sd_session_get_remote_user()</function> and
<function>sd_session_get_tty()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<para>The <function>sd_session_is_active()</function>,
<function>sd_session_get_state()</function>,
<function>sd_session_get_uid()</function>,
<function>sd_session_get_seat()</function>,
<function>sd_session_get_service()</function>,
<function>sd_session_get_type()</function>,
<function>sd_session_get_class()</function>,
<function>sd_session_get_display()</function>,
<function>sd_session_get_remote_host()</function>,
<function>sd_session_get_remote_user()</function> and
<function>sd_session_get_tty()</function>
interfaces are available as a shared library, which can
be compiled and linked to with the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
file.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_session</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,193 +23,182 @@
<refentry id="sd_uid_get_state" conditional='HAVE_PAM'>
<refentryinfo>
<title>sd_uid_get_state</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_uid_get_state</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_uid_get_state</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_uid_get_state</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_uid_get_state</refname>
<refname>sd_uid_is_on_seat</refname>
<refname>sd_uid_get_sessions</refname>
<refname>sd_uid_get_seats</refname>
<refname>sd_uid_get_display</refname>
<refpurpose>Determine login state of a specific Unix user ID</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_uid_get_state</refname>
<refname>sd_uid_is_on_seat</refname>
<refname>sd_uid_get_sessions</refname>
<refname>sd_uid_get_seats</refname>
<refname>sd_uid_get_display</refname>
<refpurpose>Determine login state of a specific Unix user ID</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-login.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_uid_get_state</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>char **<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_state</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>char **<parameter>state</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_is_on_seat</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_is_on_seat</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>const char *<parameter>seat</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_sessions</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_sessions</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>char ***<parameter>sessions</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_seats</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>char ***<parameter>seats</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_seats</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>int <parameter>require_active</parameter></paramdef>
<paramdef>char ***<parameter>seats</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_uid_get_display</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_uid_get_display</function></funcdef>
<paramdef>uid_t <parameter>uid</parameter></paramdef>
<paramdef>char **<parameter>session</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><function>sd_uid_get_state()</function> may be
used to determine the login state of a specific Unix
user identifier. The following states are currently
known: <literal>offline</literal> (user not logged in
at all), <literal>lingering</literal> (user not logged
in, but some user services running),
<literal>online</literal> (user logged in, but not
active, i.e. has no session in the foreground),
<literal>active</literal> (user logged in, and has at
least one active session, i.e. one session in the
foreground), <literal>closing</literal> (user not
logged in, and not lingering, but some processes are
still around). In the future additional states might
be defined, client code should be written to be robust
in regards to additional state strings being
returned. The returned string needs to be freed with
the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_uid_get_state()</function> may be used to
determine the login state of a specific Unix user identifier. The
following states are currently known: <literal>offline</literal>
(user not logged in at all), <literal>lingering</literal> (user
not logged in, but some user services running),
<literal>online</literal> (user logged in, but not active, i.e.
has no session in the foreground), <literal>active</literal> (user
logged in, and has at least one active session, i.e. one session
in the foreground), <literal>closing</literal> (user not logged
in, and not lingering, but some processes are still around). In
the future additional states might be defined, client code should
be written to be robust in regards to additional state strings
being returned. The returned string needs to be freed with the
libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use.</para>
<para><function>sd_uid_is_on_seat()</function> may be
used to determine whether a specific user is logged in
or active on a specific seat. Accepts a Unix user
identifier and a seat identifier string as
parameters. The <parameter>require_active</parameter>
parameter is a boolean value. If non-zero (true), this
function will test if the user is active (i.e. has a
session that is in the foreground and accepting user
input) on the specified seat, otherwise (false) only
if the user is logged in (and possibly inactive) on
the specified seat.</para>
<para><function>sd_uid_is_on_seat()</function> may be used to
determine whether a specific user is logged in or active on a
specific seat. Accepts a Unix user identifier and a seat
identifier string as parameters. The
<parameter>require_active</parameter> parameter is a boolean
value. If non-zero (true), this function will test if the user is
active (i.e. has a session that is in the foreground and accepting
user input) on the specified seat, otherwise (false) only if the
user is logged in (and possibly inactive) on the specified
seat.</para>
<para><function>sd_uid_get_sessions()</function> may
be used to determine the current sessions of the
specified user. Accepts a Unix user identifier as
parameter. The <parameter>require_active</parameter>
parameter controls whether the returned list shall
consist of only those sessions where the user is
currently active (&gt; 0), where the user is currently
online but possibly inactive (= 0), or
logged in at all but possibly closing the session (&lt; 0). The call returns a
<constant>NULL</constant> terminated string array of session identifiers in
<parameter>sessions</parameter> which needs to be
freed by the caller with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including all the strings
referenced. If the string array parameter is passed as
<constant>NULL</constant>, the array will not be filled in, but the return
code still indicates the number of current
sessions. Note that instead of an empty array <constant>NULL</constant> may
be returned and should be considered equivalent to an
empty array.</para>
<para><function>sd_uid_get_sessions()</function> may be used to
determine the current sessions of the specified user. Accepts a
Unix user identifier as parameter. The
<parameter>require_active</parameter> parameter controls whether
the returned list shall consist of only those sessions where the
user is currently active (&gt; 0), where the user is currently
online but possibly inactive (= 0), or logged in at all but
possibly closing the session (&lt; 0). The call returns a
<constant>NULL</constant> terminated string array of session
identifiers in <parameter>sessions</parameter> which needs to be
freed by the caller with the libc
<citerefentry project='man-pages'><refentrytitle>free</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call after use, including all the strings referenced. If the
string array parameter is passed as <constant>NULL</constant>, the
array will not be filled in, but the return code still indicates
the number of current sessions. Note that instead of an empty
array <constant>NULL</constant> may be returned and should be
considered equivalent to an empty array.</para>
<para>Similarly, <function>sd_uid_get_seats()</function>
may be used to determine the list of seats on which
the user currently has sessions. Similar semantics
apply, however note that the user may have
multiple sessions on the same seat as well as sessions
with no attached seat and hence the number of entries
in the returned array may differ from the one returned
by <function>sd_uid_get_sessions()</function>.</para>
<para>Similarly, <function>sd_uid_get_seats()</function> may be
used to determine the list of seats on which the user currently
has sessions. Similar semantics apply, however note that the user
may have multiple sessions on the same seat as well as sessions
with no attached seat and hence the number of entries in the
returned array may differ from the one returned by
<function>sd_uid_get_sessions()</function>.</para>
<para><function>sd_uid_get_display()</function>
returns the name of the "primary" session of a user.
If the user has graphical sessions, it will be the
oldest graphical session. Otherwise, it will be the
oldest open session.</para>
</refsect1>
<para><function>sd_uid_get_display()</function> returns the name
of the "primary" session of a user. If the user has graphical
sessions, it will be the oldest graphical session. Otherwise, it
will be the oldest open session.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On success,
<function>sd_uid_get_state()</function> returns 0 or a
positive integer. If the test succeeds,
<function>sd_uid_is_on_seat()</function> returns a
positive integer; if it fails,
0. <function>sd_uid_get_sessions()</function> and
<function>sd_uid_get_seats()</function> return the
number of entries in the returned arrays.
<function>sd_uid_get_display()</function> returns
a non-negative code on success. On failure,
these calls return a negative errno-style error
code.</para>
</refsect1>
<para>On success, <function>sd_uid_get_state()</function> returns
0 or a positive integer. If the test succeeds,
<function>sd_uid_is_on_seat()</function> returns a positive
integer; if it fails, 0.
<function>sd_uid_get_sessions()</function> and
<function>sd_uid_get_seats()</function> return the number of
entries in the returned arrays.
<function>sd_uid_get_display()</function> returns a non-negative
code on success. On failure, these calls return a negative
errno-style error code.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<para>Functions described here are available as a
shared library, and can be compiled and linked to
using the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
entry.</para>
</refsect1>
<para>Functions described here are available as a shared library,
and can be compiled and linked to using the
<constant>libsystemd</constant> <citerefentry project='die-net'><refentrytitle>pkg-config</refentrytitle><manvolnum>1</manvolnum></citerefentry>
entry.</para>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<function>sd_uid_get_state()</function>,
<function>sd_uid_is_on_seat()</function>,
<function>sd_uid_get_sessions()</function>,
and <function>sd_uid_get_seats()</function> functions
were added in systemd-31.
<para><function>sd_uid_get_state()</function>,
<function>sd_uid_is_on_seat()</function>,
<function>sd_uid_get_sessions()</function>, and
<function>sd_uid_get_seats()</function> functions were added in
systemd-31.</para>
<para><function>sd_uid_get_display()</function> was
added in systemd-213.</para>
</refsect1>
<para><function>sd_uid_get_display()</function> was added in
systemd-213.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-login</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_pid_get_owner_uid</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,168 +22,154 @@
-->
<refentry id="sd_watchdog_enabled"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_watchdog_enabled</title>
<productname>systemd</productname>
<refentryinfo>
<title>sd_watchdog_enabled</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sd_watchdog_enabled</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sd_watchdog_enabled</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_watchdog_enabled</refname>
<refpurpose>Check whether the service manager expects watchdog keep-alive notifications from a service</refpurpose>
</refnamediv>
<refnamediv>
<refname>sd_watchdog_enabled</refname>
<refpurpose>Check whether the service manager expects watchdog keep-alive notifications from a service</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-daemon.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_watchdog_enabled</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<funcprototype>
<funcdef>int <function>sd_watchdog_enabled</function></funcdef>
<paramdef>int <parameter>unset_environment</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_watchdog_enabled()</function> may
be called by a service to detect whether the service
manager expects regular keep-alive watchdog
notification events from it, and the timeout after
which the manager will act on the service if it did
not get such a notification.</para>
<refsect1>
<title>Description</title>
<para><function>sd_watchdog_enabled()</function> may be called by
a service to detect whether the service manager expects regular
keep-alive watchdog notification events from it, and the timeout
after which the manager will act on the service if it did not get
such a notification.</para>
<para>If the <varname>$WATCHDOG_USEC</varname>
environment variable is set, and the
<varname>$WATCHDOG_PID</varname> variable is unset or
set to the PID of the current process, the service
manager expects notifications from this process. The
manager will usually terminate a service when it does
not get a notification message within the specified
time after startup and after each previous message. It
is recommended that a daemon sends a keep-alive
notification message to the service manager every half
of the time returned here. Notification messages may
be sent with
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
with a message string of
<literal>WATCHDOG=1</literal>.</para>
<para>If the <varname>$WATCHDOG_USEC</varname> environment
variable is set, and the <varname>$WATCHDOG_PID</varname> variable
is unset or set to the PID of the current process, the service
manager expects notifications from this process. The manager will
usually terminate a service when it does not get a notification
message within the specified time after startup and after each
previous message. It is recommended that a daemon sends a
keep-alive notification message to the service manager every half
of the time returned here. Notification messages may be sent with
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
with a message string of <literal>WATCHDOG=1</literal>.</para>
<para>If the <parameter>unset_environment</parameter>
parameter is non-zero,
<function>sd_watchdog_enabled()</function> will unset
the <varname>$WATCHDOG_USEC</varname> and
<varname>$WATCHDOG_PID</varname> environment variables
before returning (regardless of whether the function
call itself succeeded or not). Those variables are no
longer inherited by child processes. Further calls to
<function>sd_watchdog_enabled()</function> will also
return with zero.</para>
<para>If the <parameter>unset_environment</parameter> parameter is
non-zero, <function>sd_watchdog_enabled()</function> will unset
the <varname>$WATCHDOG_USEC</varname> and
<varname>$WATCHDOG_PID</varname> environment variables before
returning (regardless of whether the function call itself
succeeded or not). Those variables are no longer inherited by
child processes. Further calls to
<function>sd_watchdog_enabled()</function> will also return with
zero.</para>
<para>If the <parameter>usec</parameter> parameter is
non-NULL, <function>sd_watchdog_enabled()</function>
will write the timeout in µs for the watchdog
logic to it.</para>
<para>If the <parameter>usec</parameter> parameter is non-NULL,
<function>sd_watchdog_enabled()</function> will write the timeout
in µs for the watchdog logic to it.</para>
<para>To enable service supervision with the watchdog
logic, use <varname>WatchdogSec=</varname> in service
files. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
</refsect1>
<para>To enable service supervision with the watchdog logic, use
<varname>WatchdogSec=</varname> in service files. See
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<refsect1>
<title>Return Value</title>
<para>On failure, this call returns a negative
errno-style error code. If the service manager expects
watchdog keep-alive notification messages to be sent,
&gt; 0 is returned, otherwise 0 is returned. Only if
the return value is &gt; 0, the
<parameter>usec</parameter> parameter is valid after
the call.</para>
</refsect1>
<para>On failure, this call returns a negative errno-style error
code. If the service manager expects watchdog keep-alive
notification messages to be sent, &gt; 0 is returned, otherwise 0
is returned. Only if the return value is &gt; 0, the
<parameter>usec</parameter> parameter is valid after the
call.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<refsect1>
<title>Notes</title>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
<para>Internally, this functions parses the
<varname>$WATCHDOG_PID</varname> and
<varname>$WATCHDOG_USEC</varname> environment
variable. The call will ignore these variables if
<varname>$WATCHDOG_PID</varname> does not contain the PID
of the current process, under the assumption that in
that case, the variables were set for a different
process further up the process tree.</para>
</refsect1>
<para>Internally, this functions parses the
<varname>$WATCHDOG_PID</varname> and
<varname>$WATCHDOG_USEC</varname> environment variable. The call
will ignore these variables if <varname>$WATCHDOG_PID</varname>
does not contain the PID of the current process, under the
assumption that in that case, the variables were set for a
different process further up the process tree.</para>
</refsect1>
<refsect1>
<title>Environment</title>
<refsect1>
<title>Environment</title>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$WATCHDOG_PID</varname></term>
<variablelist class='environment-variables'>
<varlistentry>
<term><varname>$WATCHDOG_PID</varname></term>
<listitem><para>Set by the system
manager for supervised process for
which watchdog support is enabled, and
contains the PID of that process. See
above for details.</para></listitem>
</varlistentry>
<listitem><para>Set by the system manager for supervised
process for which watchdog support is enabled, and contains
the PID of that process. See above for
details.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>$WATCHDOG_USEC</varname></term>
<varlistentry>
<term><varname>$WATCHDOG_USEC</varname></term>
<listitem><para>Set by the system
manager for supervised process for
which watchdog support is enabled, and
contains the watchdog timeout in µs
See above for
details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Set by the system manager for supervised
process for which watchdog support is enabled, and contains
the watchdog timeout in µs See above for
details.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<para>The watchdog functionality and the
<varname>$WATCHDOG_USEC</varname> variable were
added in systemd-41.</para>
<para>The watchdog functionality and the
<varname>$WATCHDOG_USEC</varname> variable were added in
systemd-41.</para>
<para><function>sd_watchdog_enabled()</function>
function was added in systemd-209. Since that version
the <varname>$WATCHDOG_PID</varname> variable is also
set.</para>
</refsect1>
<para><function>sd_watchdog_enabled()</function> function was
added in systemd-209. Since that version the
<varname>$WATCHDOG_PID</varname> variable is also set.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.service</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_notify</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,160 +22,154 @@
-->
<refentry id="shutdown"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>shutdown</title>
<productname>systemd</productname>
<refentryinfo>
<title>shutdown</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>shutdown</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>shutdown</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>shutdown</refname>
<refpurpose>Halt, power-off or reboot the machine</refpurpose>
</refnamediv>
<refnamediv>
<refname>shutdown</refname>
<refpurpose>Halt, power-off or reboot the machine</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>shutdown <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">TIME</arg> <arg choice="opt" rep="repeat">WALL</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>shutdown</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt">TIME</arg>
<arg choice="opt" rep="repeat">WALL</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>shutdown</command> may be used to halt,
power-off or reboot the machine.</para>
<para><command>shutdown</command> may be used to halt, power-off
or reboot the machine.</para>
<para>The first argument may be a time string (which
is usually <literal>now</literal>). Optionally, this
may be followed by a wall message to be sent to all
logged-in users before going down.</para>
<para>The first argument may be a time string (which is usually
<literal>now</literal>). Optionally, this may be followed by a
wall message to be sent to all logged-in users before going
down.</para>
<para>The time string may either be in the format
<literal>hh:mm</literal> for hour/minutes specifying
the time to execute the shutdown at, specified in 24h
clock format. Alternatively it may be in the syntax
<literal>+m</literal> referring to the specified
number of minutes m from now. <literal>now</literal>
is an alias for <literal>+0</literal>, i.e. for
triggering an immediate shutdown. If no time argument
is specified, <literal>+1</literal> is
implied.</para>
<para>The time string may either be in the format
<literal>hh:mm</literal> for hour/minutes specifying the time to
execute the shutdown at, specified in 24h clock format.
Alternatively it may be in the syntax <literal>+m</literal>
referring to the specified number of minutes m from now.
<literal>now</literal> is an alias for <literal>+0</literal>, i.e.
for triggering an immediate shutdown. If no time argument is
specified, <literal>+1</literal> is implied.</para>
<para>Note that to specify a wall message you must
specify a time argument, too.</para>
<para>Note that to specify a wall message you must specify a time
argument, too.</para>
<para>If the time argument is used, 5 minutes
before the system goes down the
<filename>/run/nologin</filename> file is created to
ensure that further logins shall not be
allowed.</para>
</refsect1>
<para>If the time argument is used, 5 minutes before the system
goes down the <filename>/run/nologin</filename> file is created to
ensure that further logins shall not be allowed.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<variablelist>
<varlistentry>
<term><option>--help</option></term>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help-text" />
</varlistentry>
<varlistentry>
<term><option>-H</option></term>
<term><option>--halt</option></term>
<varlistentry>
<term><option>-H</option></term>
<term><option>--halt</option></term>
<listitem><para>Halt the machine.</para></listitem>
</varlistentry>
<listitem><para>Halt the machine.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-P</option></term>
<term><option>--poweroff</option></term>
<varlistentry>
<term><option>-P</option></term>
<term><option>--poweroff</option></term>
<listitem><para>Power-off the
machine (the default).</para></listitem>
</varlistentry>
<listitem><para>Power-off the machine (the
default).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<term><option>--reboot</option></term>
<varlistentry>
<term><option>-r</option></term>
<term><option>--reboot</option></term>
<listitem><para>Reboot the
machine.</para></listitem>
</varlistentry>
<listitem><para>Reboot the
machine.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-h</option></term>
<varlistentry>
<term><option>-h</option></term>
<listitem><para>Equivalent to
<option>--poweroff</option>, unless
<option>--halt</option> is
specified.</para></listitem>
</varlistentry>
<listitem><para>Equivalent to <option>--poweroff</option>,
unless <option>--halt</option> is specified.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-k</option></term>
<varlistentry>
<term><option>-k</option></term>
<listitem><para>Do not halt, power-off,
reboot, just write wall
message.</para></listitem>
</varlistentry>
<listitem><para>Do not halt, power-off, reboot, just write
wall message.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-wall</option></term>
<varlistentry>
<term><option>--no-wall</option></term>
<listitem><para>Do not send wall
message before
halt, power-off, reboot.</para></listitem>
</varlistentry>
<listitem><para>Do not send wall
message before
halt, power-off, reboot.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Cancel a pending
shutdown. This may be used cancel the
effect of an invocation of
<command>shutdown</command> with a
time argument that is not
<literal>+0</literal> or
<literal>now</literal>.</para></listitem>
</varlistentry>
<listitem><para>Cancel a pending shutdown. This may be used
cancel the effect of an invocation of
<command>shutdown</command> with a time argument that is not
<literal>+0</literal> or
<literal>now</literal>.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>halt</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -19,158 +19,153 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
-->
<refentry id="sysctl.d"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sysctl.d</title>
<productname>systemd</productname>
<refentryinfo>
<title>sysctl.d</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>sysctl.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>sysctl.d</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>sysctl.d</refname>
<refpurpose>Configure kernel parameters at boot</refpurpose>
</refnamediv>
<refnamediv>
<refname>sysctl.d</refname>
<refpurpose>Configure kernel parameters at boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/etc/sysctl.d/*.conf</filename></para>
<para><filename>/run/sysctl.d/*.conf</filename></para>
<para><filename>/usr/lib/sysctl.d/*.conf</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/etc/sysctl.d/*.conf</filename></para>
<para><filename>/run/sysctl.d/*.conf</filename></para>
<para><filename>/usr/lib/sysctl.d/*.conf</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para>At boot,
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads configuration files from the above directories
to configure
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
kernel parameters.</para>
</refsect1>
<para>At boot,
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
reads configuration files from the above directories to configure
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>
kernel parameters.</para>
</refsect1>
<refsect1>
<title>Configuration Format</title>
<refsect1>
<title>Configuration Format</title>
<para>The configuration files contain a list of
variable assignments, separated by newlines. Empty
lines and lines whose first non-whitespace character
is <literal>#</literal> or <literal>;</literal> are
ignored.</para>
<para>The configuration files contain a list of variable
assignments, separated by newlines. Empty lines and lines whose
first non-whitespace character is <literal>#</literal> or
<literal>;</literal> are ignored.</para>
<para>Note that either <literal>/</literal> or
<literal>.</literal> may be used as separators within
sysctl variable names. If the first separator is a
slash, remaining slashes and dots are left intact. If
the first separator is a dot, dots and slashes are
interchanged. <literal>kernel.domainname=foo</literal>
and <literal>kernel/domainname=foo</literal> are
equivalent and will cause <literal>foo</literal> to
be written to
<filename>/proc/sys/kernel/domainname</filename>.
Either
<literal>net.ipv4.conf.enp3s0/200.forwarding</literal>
or
<literal>net/ipv4/conf/enp3s0.200/forwarding</literal>
may be used to refer to
<filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
</para>
<para>Note that either <literal>/</literal> or
<literal>.</literal> may be used as separators within sysctl
variable names. If the first separator is a slash, remaining
slashes and dots are left intact. If the first separator is a dot,
dots and slashes are interchanged.
<literal>kernel.domainname=foo</literal> and
<literal>kernel/domainname=foo</literal> are equivalent and will
cause <literal>foo</literal> to be written to
<filename>/proc/sys/kernel/domainname</filename>. Either
<literal>net.ipv4.conf.enp3s0/200.forwarding</literal> or
<literal>net/ipv4/conf/enp3s0.200/forwarding</literal> may be used
to refer to
<filename>/proc/sys/net/ipv4/conf/enp3s0.200/forwarding</filename>.
</para>
<para>The settings configured with
<filename>sysctl.d</filename> files will be applied
early on boot. The network interface-specific options
will also be applied individually for each network
interface as it shows up in the system. (More
specifically,
<filename>net.ipv4.conf.*</filename>,
<filename>net.ipv6.conf.*</filename>,
<filename>net.ipv4.neigh.*</filename> and <filename>net.ipv6.neigh.*</filename>).</para>
<para>The settings configured with <filename>sysctl.d</filename>
files will be applied early on boot. The network
interface-specific options will also be applied individually for
each network interface as it shows up in the system. (More
specifically, <filename>net.ipv4.conf.*</filename>,
<filename>net.ipv6.conf.*</filename>,
<filename>net.ipv4.neigh.*</filename> and
<filename>net.ipv6.neigh.*</filename>).</para>
<para>Many sysctl parameters only become available
when certain kernel modules are loaded. Modules are
usually loaded on demand, e.g. when certain hardware
is plugged in or network brought up. This means that
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry> which runs
during early boot will not configure such parameters
if they become available after it has run. To
set such parameters, it is recommended to add
an <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> rule to set those parameters when they become
available. Alternatively, a slightly simpler and
less efficient option is to add the module to
<citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>, causing it to be loaded statically
before sysctl settings are applied (see
example below).</para>
</refsect1>
<para>Many sysctl parameters only become available when certain
kernel modules are loaded. Modules are usually loaded on demand,
e.g. when certain hardware is plugged in or network brought up.
This means that
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
which runs during early boot will not configure such parameters if
they become available after it has run. To set such parameters, it
is recommended to add an
<citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>
rule to set those parameters when they become available.
Alternatively, a slightly simpler and less efficient option is to
add the module to
<citerefentry><refentrytitle>modules-load.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
causing it to be loaded statically before sysctl settings are
applied (see example below).</para>
</refsect1>
<xi:include href="standard-conf.xml" xpointer="confd" />
<xi:include href="standard-conf.xml" xpointer="confd" />
<refsect1>
<title>Examples</title>
<example>
<title>Set kernel YP domain name</title>
<para><filename>/etc/sysctl.d/domain-name.conf</filename>:
</para>
<refsect1>
<title>Examples</title>
<example>
<title>Set kernel YP domain name</title>
<para><filename>/etc/sysctl.d/domain-name.conf</filename>:
</para>
<programlisting>kernel.domainname=example.com</programlisting>
</example>
<programlisting>kernel.domainname=example.com</programlisting>
</example>
<example>
<title>Disable packet filter on bridged packets (method one)</title>
<para><filename>/etc/udev/rules.d/99-bridge.rules</filename>:
</para>
<example>
<title>Disable packet filter on bridged packets (method one)</title>
<para><filename>/etc/udev/rules.d/99-bridge.rules</filename>:
</para>
<programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/net/bridge"
<programlisting>ACTION=="add", SUBSYSTEM=="module", KERNEL=="bridge", RUN+="/usr/lib/systemd/systemd-sysctl --prefix=/net/bridge"
</programlisting>
<para><filename>/etc/sysctl.d/bridge.conf</filename>:
</para>
<para><filename>/etc/sysctl.d/bridge.conf</filename>:
</para>
<programlisting>net.bridge.bridge-nf-call-ip6tables = 0
<programlisting>net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
</programlisting>
</example>
</example>
<example>
<title>Disable packet filter on bridged packets (method two)</title>
<para><filename>/etc/modules-load.d/bridge.conf</filename>:
</para>
<example>
<title>Disable packet filter on bridged packets (method two)</title>
<para><filename>/etc/modules-load.d/bridge.conf</filename>:
</para>
<programlisting>bridge</programlisting>
<programlisting>bridge</programlisting>
<para><filename>/etc/sysctl.d/bridge.conf</filename>:
</para>
<para><filename>/etc/sysctl.d/bridge.conf</filename>:
</para>
<programlisting>net.bridge.bridge-nf-call-ip6tables = 0
<programlisting>net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
</programlisting>
</example>
</refsect1>
</example>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-sysctl.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-delta</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sysctl.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>modprobe</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,328 +22,300 @@
-->
<refentry id="systemd-analyze"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-analyze</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-analyze</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
<author>
<contrib>Developer</contrib>
<firstname>Harald</firstname>
<surname>Hoyer</surname>
<email>harald@redhat.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
<author>
<contrib>Developer</contrib>
<firstname>Harald</firstname>
<surname>Hoyer</surname>
<email>harald@redhat.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-analyze</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-analyze</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-analyze</refname>
<refpurpose>Analyze system boot-up performance</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-analyze</refname>
<refpurpose>Analyze system boot-up performance</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg>time</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">blame</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">critical-chain</arg>
<arg choice="opt" rep="repeat"><replaceable>UNIT</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">plot</arg>
<arg choice="opt">&gt; file.svg</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">dot</arg>
<arg choice="opt" rep="repeat"><replaceable>PATTERN</replaceable></arg>
<arg choice="opt">&gt; file.dot</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">dump</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">set-log-level</arg>
<arg choice="opt"><replaceable>LEVEL</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">verify</arg>
<arg choice="opt" rep="repeat"><replaceable>FILES</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg>time</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">blame</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">critical-chain</arg>
<arg choice="opt" rep="repeat"><replaceable>UNIT</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">plot</arg>
<arg choice="opt">&gt; file.svg</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">dot</arg>
<arg choice="opt" rep="repeat"><replaceable>PATTERN</replaceable></arg>
<arg choice="opt">&gt; file.dot</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">dump</arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">set-log-level</arg>
<arg choice="opt"><replaceable>LEVEL</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-analyze</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="plain">verify</arg>
<arg choice="opt" rep="repeat"><replaceable>FILES</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-analyze</command> may be used
to determine system boot-up performance statistics and
retrieve other state and tracing information from the
system and service manager, and to verify the
correctness of unit files.</para>
<para><command>systemd-analyze</command> may be used to determine
system boot-up performance statistics and retrieve other state and
tracing information from the system and service manager, and to
verify the correctness of unit files.</para>
<para><command>systemd-analyze time</command>
prints the time spent in the kernel before
userspace has been reached, the time spent in the
initial RAM disk (initrd) before normal system
userspace has been reached, and the time normal system
userspace took to initialize. Note that these
measurements simply measure the time passed up to the
point where all system services have been spawned, but
not necessarily until they fully finished
initialization or the disk is idle.</para>
<para><command>systemd-analyze time</command> prints the time
spent in the kernel before userspace has been reached, the time
spent in the initial RAM disk (initrd) before normal system
userspace has been reached, and the time normal system userspace
took to initialize. Note that these measurements simply measure
the time passed up to the point where all system services have
been spawned, but not necessarily until they fully finished
initialization or the disk is idle.</para>
<para><command>systemd-analyze blame</command> prints
a list of all running units, ordered by the time they
took to initialize. This information may be used to
optimize boot-up times. Note that the output might be
misleading as the initialization of one service might
be slow simply because it waits for the initialization
of another service to complete.</para>
<para><command>systemd-analyze blame</command> prints a list of
all running units, ordered by the time they took to initialize.
This information may be used to optimize boot-up times. Note that
the output might be misleading as the initialization of one
service might be slow simply because it waits for the
initialization of another service to complete.</para>
<para><command>systemd-analyze critical-chain [<replaceable>UNIT...</replaceable>]</command>
prints a tree of the time-critical chain of units
(for each of the specified <replaceable>UNIT</replaceable>s
or for the default target otherwise).
The time after the unit is active or started is printed
after the "@" character. The time the unit takes to
start is printed after the "+" character.
Note that the output might be misleading as the
initialization of one service might depend on socket
activation and because of the parallel execution
of units.</para>
<para><command>systemd-analyze critical-chain
[<replaceable>UNIT...</replaceable>]</command> prints a tree of
the time-critical chain of units (for each of the specified
<replaceable>UNIT</replaceable>s or for the default target
otherwise). The time after the unit is active or started is
printed after the "@" character. The time the unit takes to start
is printed after the "+" character. Note that the output might be
misleading as the initialization of one service might depend on
socket activation and because of the parallel execution of
units.</para>
<para><command>systemd-analyze plot</command> prints
an SVG graphic detailing which system services have
been started at what time, highlighting the time they
spent on initialization.</para>
<para><command>systemd-analyze plot</command> prints an SVG
graphic detailing which system services have been started at what
time, highlighting the time they spent on initialization.</para>
<para><command>systemd-analyze dot</command> generates
textual dependency graph description in dot format for
further processing with the GraphViz
<citerefentry><refentrytitle>dot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool. Use a command line like <command>systemd-analyze
dot | dot -Tsvg > systemd.svg</command> to generate a
graphical dependency tree. Unless
<option>--order</option> or <option>--require</option>
is passed, the generated graph will show both ordering
and requirement dependencies. Optional pattern
globbing style specifications
(e.g. <filename>*.target</filename>) may be given at
the end. A unit dependency is included in the graph if
any of these patterns match either the origin or
destination node.</para>
<para><command>systemd-analyze dot</command> generates textual
dependency graph description in dot format for further processing
with the GraphViz
<citerefentry><refentrytitle>dot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool. Use a command line like <command>systemd-analyze dot | dot
-Tsvg > systemd.svg</command> to generate a graphical dependency
tree. Unless <option>--order</option> or
<option>--require</option> is passed, the generated graph will
show both ordering and requirement dependencies. Optional pattern
globbing style specifications (e.g. <filename>*.target</filename>)
may be given at the end. A unit dependency is included in the
graph if any of these patterns match either the origin or
destination node.</para>
<para><command>systemd-analyze dump</command> outputs
a (usually very long) human-readable serialization of
the complete server state. Its format is subject to
change without notice and should not be parsed by
applications.</para>
<para><command>systemd-analyze dump</command> outputs a (usually
very long) human-readable serialization of the complete server
state. Its format is subject to change without notice and should
not be parsed by applications.</para>
<para><command>systemd-analyze set-log-level
<replaceable>LEVEL</replaceable></command> changes the
current log level of the <command>systemd</command>
daemon to <replaceable>LEVEL</replaceable> (accepts
the same values as <option>--log-level=</option>
described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze set-log-level
<replaceable>LEVEL</replaceable></command> changes the current log
level of the <command>systemd</command> daemon to
<replaceable>LEVEL</replaceable> (accepts the same values as
<option>--log-level=</option> described in
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>).</para>
<para><command>systemd-analyze verify</command> will
load unit files and print warnings if any errors are
detected. Files specified on the command line will be
loaded, but also any other units referenced by
them. This command works by prepending the directories
for all command line arguments at the beginning of the
unit load path, which means that all units files found
in those directories will be used in preference to the
unit files found in the standard locations, even if
not listed explicitly.</para>
<para><command>systemd-analyze verify</command> will load unit
files and print warnings if any errors are detected. Files
specified on the command line will be loaded, but also any other
units referenced by them. This command works by prepending the
directories for all command line arguments at the beginning of the
unit load path, which means that all units files found in those
directories will be used in preference to the unit files found in
the standard locations, even if not listed explicitly.</para>
<para>If no command is passed, <command>systemd-analyze
time</command> is implied.</para>
<para>If no command is passed, <command>systemd-analyze
time</command> is implied.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--user</option></term>
<variablelist>
<varlistentry>
<term><option>--user</option></term>
<listitem><para>Operates on the user
systemd instance.</para></listitem>
</varlistentry>
<listitem><para>Operates on the user systemd
instance.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--system</option></term>
<varlistentry>
<term><option>--system</option></term>
<listitem><para>Operates on the system
systemd instance. This is the implied
default.</para></listitem>
</varlistentry>
<listitem><para>Operates on the system systemd instance. This
is the implied default.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--order</option></term>
<term><option>--require</option></term>
<varlistentry>
<term><option>--order</option></term>
<term><option>--require</option></term>
<listitem><para>When used in
conjunction with the
<command>dot</command> command (see
above), selects which dependencies are
shown in the dependency graph. If
<option>--order</option> is passed,
only dependencies of type
<varname>After=</varname> or
<varname>Before=</varname> are
shown. If <option>--require</option>
is passed, only dependencies of type
<varname>Requires=</varname>,
<varname>RequiresOverridable=</varname>,
<varname>Requisite=</varname>,
<varname>RequisiteOverridable=</varname>,
<varname>Wants=</varname> and
<varname>Conflicts=</varname> are
shown. If neither is passed, this shows
dependencies of all these
types.</para></listitem>
</varlistentry>
<listitem><para>When used in conjunction with the
<command>dot</command> command (see above), selects which
dependencies are shown in the dependency graph. If
<option>--order</option> is passed, only dependencies of type
<varname>After=</varname> or <varname>Before=</varname> are
shown. If <option>--require</option> is passed, only
dependencies of type <varname>Requires=</varname>,
<varname>RequiresOverridable=</varname>,
<varname>Requisite=</varname>,
<varname>RequisiteOverridable=</varname>,
<varname>Wants=</varname> and <varname>Conflicts=</varname>
are shown. If neither is passed, this shows dependencies of
all these types.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--from-pattern=</option></term>
<term><option>--to-pattern=</option></term>
<varlistentry>
<term><option>--from-pattern=</option></term>
<term><option>--to-pattern=</option></term>
<listitem><para>When used in
conjunction with the
<command>dot</command> command (see
above), this selects which relationships
are shown in the dependency graph.
They both require
<citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
patterns as arguments, which are
matched against left-hand and
right-hand, respectively, nodes of a
relationship. Each of these can be
used more than once, which means a
unit name must match one of the given
values.</para></listitem>
</varlistentry>
<listitem><para>When used in conjunction with the
<command>dot</command> command (see above), this selects which
relationships are shown in the dependency graph. They both
require
<citerefentry><refentrytitle>glob</refentrytitle><manvolnum>7</manvolnum></citerefentry>
patterns as arguments, which are matched against left-hand and
right-hand, respectively, nodes of a relationship. Each of
these can be used more than once, which means a unit name must
match one of the given values.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--fuzz=</option><replaceable>timespan</replaceable></term>
<varlistentry>
<term><option>--fuzz=</option><replaceable>timespan</replaceable></term>
<listitem><para>When used in conjunction
with the <command>critical-chain</command>
command (see above), also show units, which
finished <replaceable>timespan</replaceable> earlier, than the
latest unit in the same level. The unit of
<replaceable>timespan</replaceable> is seconds
unless specified with a different unit,
e.g. "50ms".</para></listitem>
</varlistentry>
<listitem><para>When used in conjunction with the
<command>critical-chain</command> command (see above), also
show units, which finished <replaceable>timespan</replaceable>
earlier, than the latest unit in the same level. The unit of
<replaceable>timespan</replaceable> is seconds unless
specified with a different unit, e.g.
"50ms".</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-man</option></term>
<varlistentry>
<term><option>--no-man</option></term>
<listitem><para>Do not invoke man to verify the existence
of man pages listen in <varname>Documentation=</varname>.
</para></listitem>
</varlistentry>
<listitem><para>Do not invoke man to verify the existence of
man pages listen in <varname>Documentation=</varname>.
</para></listitem>
</varlistentry>
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="user-system-options.xml" xpointer="host" />
<xi:include href="user-system-options.xml" xpointer="machine" />
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>Examples for <command>dot</command></title>
<refsect1>
<title>Examples for <command>dot</command></title>
<example>
<title>Plots all dependencies of any unit whose
name starts with <literal>avahi-daemon</literal></title>
<example>
<title>Plots all dependencies of any unit whose name starts with
<literal>avahi-daemon</literal></title>
<programlisting>$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg</programlisting>
</example>
<programlisting>$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg</programlisting>
</example>
<example>
<title>Plots the dependencies between all known target units</title>
<example>
<title>Plots the dependencies between all known target units</title>
<programlisting>systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
<programlisting>systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
$ eog targets.svg</programlisting>
</example>
</refsect1>
</example>
</refsect1>
<refsect1>
<title>Examples for <command>verify</command></title>
<refsect1>
<title>Examples for <command>verify</command></title>
<para>The following errors are currently detected:</para>
<itemizedlist>
<listitem><para>unknown sections and
directives, </para></listitem>
<para>The following errors are currently detected:</para>
<itemizedlist>
<listitem><para>unknown sections and directives,
</para></listitem>
<listitem><para>missing dependencies which are
required to start the given unit,
</para></listitem>
<listitem><para>missing dependencies which are required to start
the given unit, </para></listitem>
<listitem><para>man pages listed in
<varname>Documentation=</varname> which are
not found in the system,</para></listitem>
<listitem><para>man pages listed in
<varname>Documentation=</varname> which are not found in the
system,</para></listitem>
<listitem><para>commands listed in
<varname>ExecStart=</varname> and similar
which are not found in the system or not
executable.</para></listitem>
</itemizedlist>
<listitem><para>commands listed in <varname>ExecStart=</varname>
and similar which are not found in the system or not
executable.</para></listitem>
</itemizedlist>
<example>
<title>Misspelt directives</title>
<example>
<title>Misspelt directives</title>
<programlisting>$ cat ./user.slice
<programlisting>$ cat ./user.slice
[Unit]
WhatIsThis=11
Documentation=man:nosuchfile(1)
@ -356,17 +328,17 @@ $ systemd-analyze verify ./user.slice
[./user.slice:9] Unknown lvalue 'WhatIsThis' in section 'Unit'
[./user.slice:13] Unknown section 'Service'. Ignoring.
Error: org.freedesktop.systemd1.LoadFailed:
Unit different.service failed to load:
No such file or directory.
Unit different.service failed to load:
No such file or directory.
Failed to create user.slice/start: Invalid argument
user.slice: man nosuchfile(1) command failed with code 16
</programlisting>
</example>
</programlisting>
</example>
<example>
<title>Missing service units</title>
<example>
<title>Missing service units</title>
<programlisting>$ tail ./a.socket ./b.socket
<programlisting>$ tail ./a.socket ./b.socket
==> ./a.socket &lt;==
[Socket]
ListenStream=100
@ -379,18 +351,18 @@ Accept=yes
$ systemd-analyze verify ./a.socket ./b.socket
Service a.service not loaded, a.socket cannot be started.
Service b@0.service not loaded, b.socket cannot be started.
</programlisting>
</example>
</refsect1>
</programlisting>
</example>
</refsect1>
<xi:include href="less-variables.xml" />
<xi:include href="less-variables.xml" />
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,76 +21,73 @@
-->
<refentry id="systemd-ask-password-console.service">
<refentryinfo>
<title>systemd-ask-password-console.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-ask-password-console.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-ask-password-console.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-ask-password-console.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-ask-password-console.service</refname>
<refname>systemd-ask-password-console.path</refname>
<refname>systemd-ask-password-wall.service</refname>
<refname>systemd-ask-password-wall.path</refname>
<refpurpose>Query the user for system passwords on the
console and via wall</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-ask-password-console.service</refname>
<refname>systemd-ask-password-console.path</refname>
<refname>systemd-ask-password-wall.service</refname>
<refname>systemd-ask-password-wall.path</refname>
<refpurpose>Query the user for system passwords on the
console and via wall</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-ask-password-console.service</filename></para>
<para><filename>systemd-ask-password-console.path</filename></para>
<para><filename>systemd-ask-password-wall.service</filename></para>
<para><filename>systemd-ask-password-wall.path</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-ask-password-console.service</filename></para>
<para><filename>systemd-ask-password-console.path</filename></para>
<para><filename>systemd-ask-password-wall.service</filename></para>
<para><filename>systemd-ask-password-wall.path</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-ask-password-console.service</filename>
is a system service that queries the user for system
passwords (such as hard disk encryption keys and SSL
certificate passphrases) on the console. It is
intended to be used during boot to ensure proper
handling of passwords necessary for
boot. <filename>systemd-ask-password-wall.service</filename>
is a system service that informs all logged in users
for system passwords via
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>. It
is intended to be used after boot to ensure that users
are properly notified.</para>
<para><filename>systemd-ask-password-console.service</filename> is
a system service that queries the user for system passwords (such
as hard disk encryption keys and SSL certificate passphrases) on
the console. It is intended to be used during boot to ensure
proper handling of passwords necessary for boot.
<filename>systemd-ask-password-wall.service</filename> is a system
service that informs all logged in users for system passwords via
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
It is intended to be used after boot to ensure that users are
properly notified.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">
developer documentation</ulink> for more information
about the system password logic.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">
developer documentation</ulink> for more information about the
system password logic.</para>
<para>Note that these services invoke
<citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
with either the <command>--watch --console</command>
or <command>--watch --wall</command> command line
parameters.</para>
</refsect1>
<para>Note that these services invoke
<citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>
with either the <command>--watch --console</command> or
<command>--watch --wall</command> command line parameters.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-tty-ask-password-agent</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,169 +22,153 @@
-->
<refentry id="systemd-ask-password"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-ask-password</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-ask-password</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-ask-password</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-ask-password</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-ask-password</refname>
<refpurpose>Query the user for a system password</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-ask-password</refname>
<refpurpose>Query the user for a system password</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-ask-password <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">MESSAGE</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-ask-password <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt">MESSAGE</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-ask-password</command> may be
used to query a system password or passphrase from the
user, using a question message specified on the
command line. When run from a TTY it will query a
password on the TTY and print it to standard output. When run
with no TTY or with <option>--no-tty</option> it will
query the password system-wide and allow active users
to respond via several agents. The latter is
only available to privileged processes.</para>
<para><command>systemd-ask-password</command> may be used to query
a system password or passphrase from the user, using a question
message specified on the command line. When run from a TTY it will
query a password on the TTY and print it to standard output. When
run with no TTY or with <option>--no-tty</option> it will query
the password system-wide and allow active users to respond via
several agents. The latter is only available to privileged
processes.</para>
<para>The purpose of this tool is to query system-wide
passwords -- that is passwords not attached to a
specific user account. Examples include: unlocking
encrypted hard disks when they are plugged in or at
boot, entering an SSL certificate passphrase for web
and VPN servers.</para>
<para>The purpose of this tool is to query system-wide passwords
-- that is passwords not attached to a specific user account.
Examples include: unlocking encrypted hard disks when they are
plugged in or at boot, entering an SSL certificate passphrase for
web and VPN servers.</para>
<para>Existing agents are: a boot-time password agent
asking the user for passwords using Plymouth; a
boot-time password agent querying the user directly on
the console; an agent requesting password input via a
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
message; an agent suitable for running in a GNOME
session; a command line agent which can be started
temporarily to process queued password requests; a TTY
agent that is temporarily spawned during
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
invocations.</para>
<para>Existing agents are: a boot-time password agent asking the
user for passwords using Plymouth; a boot-time password agent
querying the user directly on the console; an agent requesting
password input via a
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
message; an agent suitable for running in a GNOME session; a
command line agent which can be started temporarily to process
queued password requests; a TTY agent that is temporarily spawned
during
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
invocations.</para>
<para>Additional password agents may be implemented
according to the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">systemd
Password Agent Specification</ulink>.</para>
<para>Additional password agents may be implemented according to
the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">systemd
Password Agent Specification</ulink>.</para>
<para>If a password is queried on a TTY, the user may
press TAB to hide the asterisks normally shown for
each character typed. Pressing Backspace as first key
achieves the same effect.</para>
<para>If a password is queried on a TTY, the user may press TAB to
hide the asterisks normally shown for each character typed.
Pressing Backspace as first key achieves the same effect.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--icon=</option></term>
<variablelist>
<varlistentry>
<term><option>--icon=</option></term>
<listitem><para>Specify an icon name
alongside the password query, which may
be used in all agents supporting
graphical display. The icon name
should follow the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming
Specification</ulink>.</para></listitem>
</varlistentry>
<listitem><para>Specify an icon name alongside the password
query, which may be used in all agents supporting graphical
display. The icon name should follow the <ulink
url="http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html">XDG
Icon Naming Specification</ulink>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--timeout=</option></term>
<varlistentry>
<term><option>--timeout=</option></term>
<listitem><para>Specify the query
timeout in seconds. Defaults to
90s. A timeout of 0 waits indefinitely.
</para></listitem>
</varlistentry>
<listitem><para>Specify the query timeout in seconds. Defaults
to 90s. A timeout of 0 waits indefinitely. </para></listitem>
</varlistentry>
<varlistentry>
<term><option>--echo</option></term>
<varlistentry>
<term><option>--echo</option></term>
<listitem><para>Echo the user input
instead of masking it. This is useful
when using
<filename>systemd-ask-password</filename>
to query for usernames.
</para></listitem>
</varlistentry>
<listitem><para>Echo the user input instead of masking it.
This is useful when using
<filename>systemd-ask-password</filename> to query for
usernames. </para></listitem>
</varlistentry>
<varlistentry>
<term><option>--no-tty</option></term>
<varlistentry>
<term><option>--no-tty</option></term>
<listitem><para>Never ask for password
on current TTY even if one is
available. Always use agent
system.</para></listitem>
</varlistentry>
<listitem><para>Never ask for password on current TTY even if
one is available. Always use agent system.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--accept-cached</option></term>
<varlistentry>
<term><option>--accept-cached</option></term>
<listitem><para>If passed, accept
cached passwords, i.e. passwords
previously typed in.</para></listitem>
</varlistentry>
<listitem><para>If passed, accept cached passwords, i.e.
passwords previously typed in.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--multiple</option></term>
<varlistentry>
<term><option>--multiple</option></term>
<listitem><para>When used in
conjunction with
<option>--accept-cached</option>
accept multiple passwords. This will
output one password per
line.</para></listitem>
</varlistentry>
<listitem><para>When used in conjunction with
<option>--accept-cached</option> accept multiple passwords.
This will output one password per line.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>plymouth</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>wall</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,79 +21,74 @@
-->
<refentry id="systemd-backlight@.service" conditional='ENABLE_BACKLIGHT'>
<refentryinfo>
<title>systemd-backlight@.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-backlight@.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-backlight@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-backlight@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-backlight@.service</refname>
<refname>systemd-backlight</refname>
<refpurpose>Load and save the display backlight brightness at boot and shutdown</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-backlight@.service</refname>
<refname>systemd-backlight</refname>
<refpurpose>Load and save the display backlight brightness at boot and shutdown</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-backlight@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-backlight</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-backlight@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-backlight</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-backlight@.service</filename>
is a service that restores the display backlight
brightness at early boot and saves it at shutdown. On
disk, the backlight brightness is stored in
<filename>/var/lib/systemd/backlight/</filename>. During
loading, if udev property
<option>ID_BACKLIGHT_CLAMP</option> is not set to
false value, the brightness is clamped to a value of
at least 1 or 5% of maximum brightness, whichever is
greater. This restriction will be removed when the
kernel allows user space to reliably set a brightness
value which does not turn off the display.</para>
</refsect1>
<para><filename>systemd-backlight@.service</filename> is a service
that restores the display backlight brightness at early boot and
saves it at shutdown. On disk, the backlight brightness is stored
in <filename>/var/lib/systemd/backlight/</filename>. During
loading, if udev property <option>ID_BACKLIGHT_CLAMP</option> is
not set to false value, the brightness is clamped to a value of at
least 1 or 5% of maximum brightness, whichever is greater. This
restriction will be removed when the kernel allows user space to
reliably set a brightness value which does not turn off the
display.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para><filename>systemd-backlight</filename> understands
the following kernel command line parameter:</para>
<para><filename>systemd-backlight</filename> understands the
following kernel command line parameter:</para>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.restore_state=</varname></term>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.restore_state=</varname></term>
<listitem><para>Takes a boolean
argument. Defaults to
<literal>1</literal>. If
<literal>0</literal>, does not restore
the backlight settings on boot. However,
settings will still be stored on shutdown.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Takes a boolean argument. Defaults to
<literal>1</literal>. If <literal>0</literal>, does not
restore the backlight settings on boot. However, settings will
still be stored on shutdown. </para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,56 +21,55 @@
-->
<refentry id="systemd-binfmt.service" conditional='ENABLE_BINFMT'>
<refentryinfo>
<title>systemd-binfmt.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-binfmt.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-binfmt.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-binfmt.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-binfmt.service</refname>
<refname>systemd-binfmt</refname>
<refpurpose>Configure additional binary formats for executables at boot</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-binfmt.service</refname>
<refname>systemd-binfmt</refname>
<refpurpose>Configure additional binary formats for executables at boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-binfmt.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-binfmt</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-binfmt.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-binfmt</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-binfmt.service</filename> is
an early-boot service that registers additional binary
formats for executables in the kernel.</para>
<para><filename>systemd-binfmt.service</filename> is an early-boot
service that registers additional binary formats for executables
in the kernel.</para>
<para>See
<citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this
service.</para>
</refsect1>
<para>See
<citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this service.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>wine</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>binfmt.d</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='die-net'><refentrytitle>wine</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,7 +1,7 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -27,311 +27,298 @@
-->
<refentry id="systemd-bootchart" conditional='ENABLE_BOOTCHART'
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-bootchart</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-bootchart</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Auke</firstname>
<surname>Kok</surname>
<email>auke-jan.h.kok@intel.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Auke</firstname>
<surname>Kok</surname>
<email>auke-jan.h.kok@intel.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-bootchart</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-bootchart</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-bootchart</refname>
<refpurpose>Boot performance graphing tool</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-bootchart</refname>
<refpurpose>Boot performance graphing tool</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<para>
<command>systemd-bootchart</command> is a
tool, usually run at system startup, that
collects the CPU load, disk load, memory
usage, as well as per-process information from
a running system. Collected results are output
as an SVG graph. Normally, systemd-bootchart
is invoked by the kernel by passing
<option>init=<filename>/usr/lib/systemd/systemd-bootchart</filename></option>
on the kernel command line. systemd-bootchart will then
fork the real init off to resume normal system
startup, while monitoring and logging startup
information in the background.
</para>
<para>
After collecting a certain amount of data
(usually 15-30 seconds, default 20 s) the
logging stops and a graph is generated from
the logged information. This graph contains
vital clues as to which resources are being used,
in which order, and where possible problems
exist in the startup sequence of the system.
It is essentially a more detailed version of
the <command>systemd-analyze plot</command>
function.
</para>
<para>
Of course, bootchart can also be used at any
moment in time to collect and graph some data
for an amount of time. It is
recommended to use the <option>--rel</option>
switch in this case.
</para>
<para>
Bootchart does not require root privileges,
and will happily run as a normal user.
</para>
<para>
Bootchart graphs are by default written
time-stamped in <filename>/run/log</filename>
and saved to the journal with
<varname>MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518</varname>.
Journal field <varname>BOOTCHART=</varname> contains
the bootchart in SVG format.
</para>
<refsect1>
<title>Description</title>
<para>
<command>systemd-bootchart</command> is a tool, usually run at
system startup, that collects the CPU load, disk load, memory
usage, as well as per-process information from a running system.
Collected results are output as an SVG graph. Normally,
systemd-bootchart is invoked by the kernel by passing
<option>init=<filename>/usr/lib/systemd/systemd-bootchart</filename></option>
on the kernel command line. systemd-bootchart will then fork the
real init off to resume normal system startup, while monitoring
and logging startup information in the background.
</para>
<para>
After collecting a certain amount of data (usually 15-30
seconds, default 20 s) the logging stops and a graph is
generated from the logged information. This graph contains vital
clues as to which resources are being used, in which order, and
where possible problems exist in the startup sequence of the
system. It is essentially a more detailed version of the
<command>systemd-analyze plot</command> function.
</para>
<para>
Of course, bootchart can also be used at any moment in time to
collect and graph some data for an amount of time. It is
recommended to use the <option>--rel</option> switch in this
case.
</para>
<para>
Bootchart does not require root privileges, and will happily run
as a normal user.
</para>
<para>
Bootchart graphs are by default written time-stamped in
<filename>/run/log</filename> and saved to the journal with
<varname>MESSAGE_ID=9f26aa562cf440c2b16c773d0479b518</varname>.
Journal field <varname>BOOTCHART=</varname> contains the
bootchart in SVG format.
</para>
</refsect1>
</refsect1>
<refsect1>
<title>Invocation</title>
<refsect1>
<title>Invocation</title>
<para><command>systemd-bootchart</command> can be invoked in several different ways:</para>
<para><command>systemd-bootchart</command> can be invoked in several different ways:</para>
<variablelist>
<variablelist>
<varlistentry>
<term><emphasis>Kernel invocation</emphasis></term>
<listitem><para>The kernel can invoke
<command>systemd-bootchart</command>
instead of the init process. In turn,
<command>systemd-bootchart</command>
will invoke <command>/usr/lib/systemd/systemd</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Kernel invocation</emphasis></term>
<listitem><para>The kernel can invoke
<command>systemd-bootchart</command> instead of the init
process. In turn, <command>systemd-bootchart</command> will
invoke <command>/usr/lib/systemd/systemd</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Started as a standalone program</emphasis></term>
<listitem><para>One can execute
<command>systemd-bootchart</command>
as normal application from the
command line. In this mode it is highly
recommended to pass the
<option>-r</option> flag in order to
not graph the time elapsed since boot
and before systemd-bootchart was
started, as it may result in extremely
large graphs. The time elapsed since boot
might also include any time that the system
was suspended.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<varlistentry>
<term><emphasis>Started as a standalone program</emphasis></term>
<listitem><para>One can execute
<command>systemd-bootchart</command> as normal application
from the command line. In this mode it is highly recommended
to pass the <option>-r</option> flag in order to not graph the
time elapsed since boot and before systemd-bootchart was
started, as it may result in extremely large graphs. The time
elapsed since boot might also include any time that the system
was suspended.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>These options can also be set in the
<filename>/etc/systemd/bootchart.conf</filename>
file. See
<citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<para>These options can also be set in the
<filename>/etc/systemd/bootchart.conf</filename> file. See
<citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<varlistentry>
<term><option>-n</option></term>
<term><option>--sample <replaceable>N</replaceable></option></term>
<listitem><para>Specify the number of
samples, <replaceable>N</replaceable>,
to record. Samples will be recorded at
intervals defined with <option>--freq</option>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<term><option>--sample <replaceable>N</replaceable></option></term>
<listitem><para>Specify the number of samples,
<replaceable>N</replaceable>, to record. Samples will be
recorded at intervals defined with <option>--freq</option>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f</option></term>
<term><option>--freq <replaceable>f</replaceable></option></term>
<listitem><para>Specify the sample log
frequency, a positive real <replaceable>f</replaceable>, in Hz.
Most systems can cope with values up to 25-50 without
creating too much overhead.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-f</option></term>
<term><option>--freq <replaceable>f</replaceable></option></term>
<listitem><para>Specify the sample log frequency, a positive
real <replaceable>f</replaceable>, in Hz. Most systems can
cope with values up to 25-50 without creating too much
overhead.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<term><option>--rel</option></term>
<listitem><para>Use relative times instead of absolute
times. This is useful for using bootchart at post-boot
time to profile an already booted system. Without this
option the graph would become extremely large. If set, the
horizontal axis starts at the first recorded sample
instead of time 0.0.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option></term>
<term><option>--rel</option></term>
<listitem><para>Use relative times instead of absolute times.
This is useful for using bootchart at post-boot time to
profile an already booted system. Without this option the
graph would become extremely large. If set, the horizontal
axis starts at the first recorded sample instead of time
0.0.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F</option></term>
<term><option>--no-filter</option></term>
<listitem><para>Disable filtering of tasks that
did not contribute significantly to the boot. Processes
that are too short-lived (only seen in one sample) or
that do not consume any significant CPU time (less than
0.001 s) will not be displayed in the output graph.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F</option></term>
<term><option>--no-filter</option></term>
<listitem><para>Disable filtering of tasks that did not
contribute significantly to the boot. Processes that are too
short-lived (only seen in one sample) or that do not consume
any significant CPU time (less than 0.001 s) will not be
displayed in the output graph. </para></listitem>
</varlistentry>
<varlistentry>
<term><option>-C</option></term>
<term><option>--cmdline</option></term>
<listitem><para>Display the full command line with arguments of processes,
instead of only the process name.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-C</option></term>
<term><option>--cmdline</option></term>
<listitem><para>Display the full command line with arguments
of processes, instead of only the process name.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option></term>
<term><option>--control-group</option></term>
<listitem><para>Display process control group
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option></term>
<term><option>--control-group</option></term>
<listitem><para>Display process control group
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output <replaceable>path</replaceable></option></term>
<listitem><para>Specify the output directory for the
graphs. By default, bootchart writes the graphs to
<filename>/run/log</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<term><option>--output <replaceable>path</replaceable></option></term>
<listitem><para>Specify the output directory for the graphs.
By default, bootchart writes the graphs to
<filename>/run/log</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option></term>
<term><option>--init <replaceable>path</replaceable></option></term>
<listitem><para>Use this init binary. Defaults to
<command>/usr/lib/systemd/systemd</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option></term>
<term><option>--init <replaceable>path</replaceable></option></term>
<listitem><para>Use this init binary. Defaults to
<command>/usr/lib/systemd/systemd</command>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--pss</option></term>
<listitem><para>Enable logging and graphing
of processes' PSS (Proportional Set Size)
memory consumption. See <filename>filesystems/proc.txt</filename>
in the kernel documentation for an
explanation of this field.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--pss</option></term>
<listitem><para>Enable logging and graphing of processes' PSS
(Proportional Set Size) memory consumption. See
<filename>filesystems/proc.txt</filename> in the kernel
documentation for an explanation of this field.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option></term>
<term><option>--entropy</option></term>
<listitem><para>Enable logging and graphing
of the kernel random entropy pool size.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option></term>
<term><option>--entropy</option></term>
<listitem><para>Enable logging and graphing of the kernel
random entropy pool size.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<term><option>--scale-x <replaceable>N</replaceable></option></term>
<listitem><para>Horizontal scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option></term>
<term><option>--scale-x <replaceable>N</replaceable></option></term>
<listitem><para>Horizontal scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-y</option></term>
<term><option>--scale-y <replaceable>N</replaceable></option></term>
<listitem><para>Vertical scaling factor for all variable
graph components.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-y</option></term>
<term><option>--scale-y <replaceable>N</replaceable></option></term>
<listitem><para>Vertical scaling factor for all variable graph
components.</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Output</title>
<refsect1>
<title>Output</title>
<para><command>systemd-bootchart</command> generates SVG graphs. In order to render those
on a graphical display any SVG capable viewer can be used. It should be
noted that the SVG render engines in most browsers (including Chrome
and Firefox) are many times faster than dedicated graphical applications
like Gimp and Inkscape. Just point your browser at <ulink url="file:///run/log/" />!
</para>
</refsect1>
<para><command>systemd-bootchart</command> generates SVG graphs.
In order to render those on a graphical display any SVG capable
viewer can be used. It should be noted that the SVG render engines
in most browsers (including Chrome and Firefox) are many times
faster than dedicated graphical applications like Gimp and
Inkscape. Just point your browser at
<ulink url="file:///run/log/" />!
</para>
</refsect1>
<refsect1>
<title>History</title>
<refsect1>
<title>History</title>
<para>This version of bootchart was implemented from
scratch, but is inspired by former bootchart
incantations:</para>
<para>This version of bootchart was implemented from scratch, but
is inspired by former bootchart incantations:</para>
<variablelist>
<varlistentry>
<term><emphasis>Original bash</emphasis></term>
<listitem><para>The original bash/shell code implemented
bootchart. This version created a compressed tarball for
processing with external applications. This version did
not graph anything, only generated data.</para></listitem>
</varlistentry>
<variablelist>
<varlistentry>
<term><emphasis>Original bash</emphasis></term>
<listitem><para>The original bash/shell code implemented
bootchart. This version created a compressed tarball for
processing with external applications. This version did not
graph anything, only generated data.</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Ubuntu C Implementation</emphasis></term>
<listitem><para>This version replaced the shell version with
a fast and efficient data logger, but also did not graph
the data.</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Ubuntu C Implementation</emphasis></term>
<listitem><para>This version replaced the shell version with a
fast and efficient data logger, but also did not graph the
data.</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Java bootchart</emphasis></term>
<listitem><para>This was the original graphing application
for charting the data, written in java.</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>Java bootchart</emphasis></term>
<listitem><para>This was the original graphing application for
charting the data, written in java.</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis>pybootchartgui.py</emphasis></term>
<listitem><para>pybootchart created a graph from the data
collected by either the bash or C version.</para></listitem>
</varlistentry>
</variablelist>
<varlistentry>
<term><emphasis>pybootchartgui.py</emphasis></term>
<listitem><para>pybootchart created a graph from the data
collected by either the bash or C version.</para></listitem>
</varlistentry>
</variablelist>
<para>The version of bootchart you are using now combines both the data
collection and the charting into a single application, making it more
efficient and simpler. There are no longer any timing issues with the data
collector and the grapher, as the graphing cannot be run until the data
has been collected. Also, the data kept in memory is reduced to the absolute
minimum needed.</para>
<para>The version of bootchart you are using now combines both the
data collection and the charting into a single application, making
it more efficient and simpler. There are no longer any timing
issues with the data collector and the grapher, as the graphing
cannot be run until the data has been collected. Also, the data
kept in memory is reduced to the absolute minimum needed.</para>
</refsect1>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<refsect1>
<title>Bugs</title>
<para>systemd-bootchart does not get the model information for the hard drive
unless the root device is specified with <code>root=/dev/sdxY</code>. Using
UUIDs or PARTUUIDs will boot fine, but the hard drive model will not be
added to the chart.</para>
<para>For bugs, please contact the author and current maintainer:</para>
<simplelist>
<member>Auke Kok <email>auke-jan.h.kok@intel.com</email></member>
</simplelist>
</refsect1>
<para>
<citerefentry project='man-pages'><refentrytitle>bootchart.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>Bugs</title>
<para>systemd-bootchart does not get the model information for the
hard drive unless the root device is specified with
<code>root=/dev/sdxY</code>. Using UUIDs or PARTUUIDs will boot
fine, but the hard drive model will not be added to the
chart.</para>
<para>For bugs, please contact the author and current maintainer:</para>
<simplelist>
<member>Auke Kok <email>auke-jan.h.kok@intel.com</email></member>
</simplelist>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,173 +22,157 @@
-->
<refentry id="systemd-cat"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-cat</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-cat</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-cat</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-cat</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-cat</refname>
<refpurpose>Connect a pipeline or program's output with the journal</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-cat</refname>
<refpurpose>Connect a pipeline or program's output with the journal</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cat <arg choice="opt" rep="repeat">OPTIONS</arg> <arg>COMMAND</arg> <arg choice="opt" rep="repeat">ARGUMENTS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-cat <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cat <arg choice="opt" rep="repeat">OPTIONS</arg> <arg>COMMAND</arg> <arg choice="opt" rep="repeat">ARGUMENTS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-cat <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-cat</command> may be used to
connect the standard input and output of a process to the
journal, or as a filter tool in a shell pipeline to
pass the output the previous pipeline element
generates to the journal.</para>
<para><command>systemd-cat</command> may be used to connect the
standard input and output of a process to the journal, or as a
filter tool in a shell pipeline to pass the output the previous
pipeline element generates to the journal.</para>
<para>If no parameter is passed,
<command>systemd-cat</command> will write
everything it reads from standard input (stdin) to the journal.</para>
<para>If no parameter is passed, <command>systemd-cat</command>
will write everything it reads from standard input (stdin) to the
journal.</para>
<para>If parameters are passed, they are executed as
command line with standard output (stdout) and standard
error output (stderr) connected to the journal, so
that all it writes is stored in the journal.</para>
</refsect1>
<para>If parameters are passed, they are executed as command line
with standard output (stdout) and standard error output (stderr)
connected to the journal, so that all it writes is stored in the
journal.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<varlistentry>
<term><option>-t</option></term>
<term><option>--identifier=</option></term>
<varlistentry>
<term><option>-t</option></term>
<term><option>--identifier=</option></term>
<listitem><para>Specify a short string
that is used to identify the logging
tool. If not specified, no identification
string is written to the journal.</para></listitem>
</varlistentry>
<listitem><para>Specify a short string that is used to
identify the logging tool. If not specified, no identification
string is written to the journal.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<term><option>--priority=</option></term>
<varlistentry>
<term><option>-p</option></term>
<term><option>--priority=</option></term>
<listitem><para>Specify the default
priority level for the logged
messages. Pass one of
<literal>emerg</literal>,
<literal>alert</literal>,
<literal>crit</literal>,
<literal>err</literal>,
<literal>warning</literal>,
<literal>notice</literal>,
<literal>info</literal>,
<literal>debug</literal>, or a
value between 0 and 7 (corresponding
to the same named levels). These
priority values are the same as
defined by
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Defaults
to <literal>info</literal>. Note that
this simply controls the default,
individual lines may be logged with
different levels if they are prefixed
accordingly. For details see
<option>--level-prefix=</option>
below.</para></listitem>
</varlistentry>
<listitem><para>Specify the default priority level for the
logged messages. Pass one of
<literal>emerg</literal>,
<literal>alert</literal>,
<literal>crit</literal>,
<literal>err</literal>,
<literal>warning</literal>,
<literal>notice</literal>,
<literal>info</literal>,
<literal>debug</literal>, or a
value between 0 and 7 (corresponding to the same named
levels). These priority values are the same as defined by
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
Defaults to <literal>info</literal>. Note that this simply
controls the default, individual lines may be logged with
different levels if they are prefixed accordingly. For details
see <option>--level-prefix=</option> below.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--level-prefix=</option></term>
<varlistentry>
<term><option>--level-prefix=</option></term>
<listitem><para>Controls whether lines
read are parsed for syslog priority
level prefixes. If enabled (the
default), a line prefixed with a
priority prefix such as
<literal>&lt;5&gt;</literal> is logged
at priority 5
(<literal>notice</literal>), and
similar for the other priority
levels. Takes a boolean
argument.</para></listitem>
</varlistentry>
<listitem><para>Controls whether lines read are parsed for
syslog priority level prefixes. If enabled (the default), a
line prefixed with a priority prefix such as
<literal>&lt;5&gt;</literal> is logged at priority 5
(<literal>notice</literal>), and similar for the other
priority levels. Takes a boolean argument.</para></listitem>
</varlistentry>
</variablelist>
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<example>
<title>Invoke a program</title>
<example>
<title>Invoke a program</title>
<para>This calls <filename noindex='true'>/bin/ls</filename>
with standard output and error connected to the
journal:</para>
<para>This calls <filename noindex='true'>/bin/ls</filename>
with standard output and error connected to the journal:</para>
<programlisting># systemd-cat ls</programlisting>
</example>
<programlisting># systemd-cat ls</programlisting>
</example>
<example>
<title>Usage in a shell pipeline</title>
<example>
<title>Usage in a shell pipeline</title>
<para>This builds a shell pipeline also
invoking <filename>/bin/ls</filename> and
writes the output it generates to the
journal:</para>
<para>This builds a shell pipeline also invoking
<filename>/bin/ls</filename> and writes the output it generates
to the journal:</para>
<programlisting># ls | systemd-cat</programlisting>
</example>
<programlisting># ls | systemd-cat</programlisting>
</example>
<para>Even though the two examples have very similar
effects the first is preferable since only one process
is running at a time, and both stdout and stderr are
captured while in the second example, only stdout is
captured.</para>
</refsect1>
<para>Even though the two examples have very similar effects the
first is preferable since only one process is running at a time,
and both stdout and stderr are captured while in the second
example, only stdout is captured.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logger</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logger</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,124 +22,118 @@
-->
<refentry id="systemd-cgls"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-cgls</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-cgls</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-cgls</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-cgls</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-cgls</refname>
<refpurpose>Recursively show control group contents</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-cgls</refname>
<refpurpose>Recursively show control group contents</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cgls</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt" rep="repeat">CGROUP</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cgls</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt" rep="repeat">CGROUP</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-cgls</command> recursively
shows the contents of the selected Linux control group
hierarchy in a tree. If arguments are specified, shows
all member processes of the specified control groups
plus all their subgroups and their members. The
control groups may either be specified by their full
file paths or are assumed in the systemd control group
hierarchy. If no argument is specified and the current
working directory is beneath the control group mount
point <filename>/sys/fs/cgroup</filename>, shows the contents
of the control group the working directory refers
to. Otherwise, the full systemd control group hierarchy
is shown.</para>
<para><command>systemd-cgls</command> recursively shows the
contents of the selected Linux control group hierarchy in a tree.
If arguments are specified, shows all member processes of the
specified control groups plus all their subgroups and their
members. The control groups may either be specified by their full
file paths or are assumed in the systemd control group hierarchy.
If no argument is specified and the current working directory is
beneath the control group mount point
<filename>/sys/fs/cgroup</filename>, shows the contents of the
control group the working directory refers to. Otherwise, the full
systemd control group hierarchy is shown.</para>
<para>By default, empty control groups are not
shown.</para>
</refsect1>
<para>By default, empty control groups are not shown.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--all</option></term>
<variablelist>
<varlistentry>
<term><option>--all</option></term>
<listitem><para>Do not hide empty
control groups in the
output.</para></listitem>
</varlistentry>
<listitem><para>Do not hide empty control groups in the
output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-l</option></term>
<term><option>--full</option></term>
<varlistentry>
<term><option>-l</option></term>
<term><option>--full</option></term>
<listitem><para>Do not ellipsize
process tree members.</para>
</listitem>
</varlistentry>
<listitem><para>Do not ellipsize process tree members.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-k</option></term>
<varlistentry>
<term><option>-k</option></term>
<listitem><para>Include kernel
threads in output.</para></listitem>
</varlistentry>
<listitem><para>Include kernel threads in output.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-M <replaceable>MACHINE</replaceable></option></term>
<term><option>--machine=<replaceable>MACHINE</replaceable></option></term>
<varlistentry>
<term><option>-M <replaceable>MACHINE</replaceable></option></term>
<term><option>--machine=<replaceable>MACHINE</replaceable></option></term>
<listitem><para>Limit control groups shown to
the part corresponding to the
container <replaceable>MACHINE</replaceable>.
</para></listitem>
</varlistentry>
<listitem><para>Limit control groups shown to the part
corresponding to the container
<replaceable>MACHINE</replaceable>.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cgtop</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,249 +22,232 @@
-->
<refentry id="systemd-cgtop"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-cgtop</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-cgtop</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-cgtop</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-cgtop</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-cgtop</refname>
<refpurpose>Show top control groups by their resource usage</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-cgtop</refname>
<refpurpose>Show top control groups by their resource usage</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cgtop</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-cgtop</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-cgtop</command> shows the top
control groups of the local Linux control group
hierarchy, ordered by their CPU, memory, or disk I/O load. The
display is refreshed in regular intervals (by default
every 1s), similar in style to
<citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
If <command>systemd-cgtop</command> is not connected
to a tty, only one iteration is performed and no
columns headers are printed. This mode is suitable for
scripting.</para>
<para><command>systemd-cgtop</command> shows the top control
groups of the local Linux control group hierarchy, ordered by
their CPU, memory, or disk I/O load. The display is refreshed in
regular intervals (by default every 1s), similar in style to
<citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
If <command>systemd-cgtop</command> is not connected to a tty,
only one iteration is performed and no columns headers are
printed. This mode is suitable for scripting.</para>
<para>Resource usage is only accounted for control
groups in the relevant hierarchy, i.e. CPU usage is
only accounted for control groups in the
<literal>cpuacct</literal> hierarchy, memory usage
only for those in <literal>memory</literal> and disk
I/O usage for those in <literal>blkio</literal>. If
resource monitoring for these resources is required,
it is recommended to add the
<varname>CPUAccounting=1</varname>,
<varname>MemoryAccounting=1</varname> and
<varname>BlockIOAccounting=1</varname> settings in the
unit files in question. See
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
<para>Resource usage is only accounted for control groups in the
relevant hierarchy, i.e. CPU usage is only accounted for control
groups in the <literal>cpuacct</literal> hierarchy, memory usage
only for those in <literal>memory</literal> and disk I/O usage for
those in <literal>blkio</literal>. If resource monitoring for
these resources is required, it is recommended to add the
<varname>CPUAccounting=1</varname>,
<varname>MemoryAccounting=1</varname> and
<varname>BlockIOAccounting=1</varname> settings in the unit files
in question. See
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details.</para>
<para>To emphasize this: unless
<literal>CPUAccounting=1</literal>,
<literal>MemoryAccounting=1</literal> and
<literal>BlockIOAccounting=1</literal> are enabled for
the services in question, no resource accounting will
be available for system services and the data shown by
<command>systemd-cgtop</command> will be
incomplete.</para>
</refsect1>
<para>To emphasize this: unless
<literal>CPUAccounting=1</literal>,
<literal>MemoryAccounting=1</literal> and
<literal>BlockIOAccounting=1</literal> are enabled for the
services in question, no resource accounting will be available for
system services and the data shown by
<command>systemd-cgtop</command> will be incomplete.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-p</option></term>
<variablelist>
<varlistentry>
<term><option>-p</option></term>
<listitem><para>Order by control group
path name.</para></listitem>
</varlistentry>
<listitem><para>Order by control group
path name.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option></term>
<varlistentry>
<term><option>-t</option></term>
<listitem><para>Order by number of
tasks in control
group (i.e. threads and processes).</para></listitem>
</varlistentry>
<listitem><para>Order by number of tasks in control group
(i.e. threads and processes).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<varlistentry>
<term><option>-c</option></term>
<listitem><para>Order by CPU load.</para></listitem>
</varlistentry>
<listitem><para>Order by CPU load.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<varlistentry>
<term><option>-m</option></term>
<listitem><para>Order by memory usage.</para></listitem>
</varlistentry>
<listitem><para>Order by memory usage.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option></term>
<varlistentry>
<term><option>-i</option></term>
<listitem><para>Order by disk I/O load.</para></listitem>
</varlistentry>
<listitem><para>Order by disk I/O load.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-b</option></term>
<term><option>--batch</option></term>
<varlistentry>
<term><option>-b</option></term>
<term><option>--batch</option></term>
<listitem><para>Run in "batch" mode:
do not accept input and run until the
iteration limit set with
<option>--iterations</option> is
exhausted or until killed. This mode
could be useful for sending output
from <command>systemd-cgtop</command>
to other programs or to a
file.</para></listitem>
</varlistentry>
<listitem><para>Run in "batch" mode: do not accept input and
run until the iteration limit set with
<option>--iterations</option> is exhausted or until killed.
This mode could be useful for sending output from
<command>systemd-cgtop</command> to other programs or to a
file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-n</option></term>
<term><option>--iterations=</option></term>
<varlistentry>
<term><option>-n</option></term>
<term><option>--iterations=</option></term>
<listitem><para>Perform only this many
iterations.</para></listitem>
</varlistentry>
<listitem><para>Perform only this many iterations.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<term><option>--delay=</option></term>
<varlistentry>
<term><option>-d</option></term>
<term><option>--delay=</option></term>
<listitem><para>Specify refresh delay
in seconds (or if one of
<literal>ms</literal>,
<literal>us</literal>,
<literal>min</literal> is specified as
unit in this time
unit).</para></listitem>
</varlistentry>
<listitem><para>Specify refresh delay in seconds (or if one of
<literal>ms</literal>,
<literal>us</literal>,
<literal>min</literal> is specified as unit in this time
unit).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--depth=</option></term>
<varlistentry>
<term><option>--depth=</option></term>
<listitem><para>Maximum control group
tree traversal depth. Specifies how
deep <command>systemd-cgtop</command>
shall traverse the control group
hierarchies. If 0 is specified, only
the root group is monitored. For 1,
only the first level of control groups
is monitored, and so on. Defaults to
3.</para></listitem>
</varlistentry>
<listitem><para>Maximum control group tree traversal depth.
Specifies how deep <command>systemd-cgtop</command> shall
traverse the control group hierarchies. If 0 is specified,
only the root group is monitored. For 1, only the first level
of control groups is monitored, and so on. Defaults to
3.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Keys</title>
<refsect1>
<title>Keys</title>
<para><command>systemd-cgtop</command> is an
interactive tool and may be controlled via user input
using the following keys:</para>
<para><command>systemd-cgtop</command> is an interactive tool and
may be controlled via user input using the following keys:</para>
<variablelist>
<varlistentry>
<term>h</term>
<variablelist>
<varlistentry>
<term>h</term>
<listitem><para>Shows a short help text.</para></listitem>
</varlistentry>
<listitem><para>Shows a short help text.</para></listitem>
</varlistentry>
<varlistentry>
<term>SPACE</term>
<varlistentry>
<term>SPACE</term>
<listitem><para>Immediately refresh output.</para></listitem>
</varlistentry>
<listitem><para>Immediately refresh output.</para></listitem>
</varlistentry>
<varlistentry>
<term>q</term>
<varlistentry>
<term>q</term>
<listitem><para>Terminate the program.</para></listitem>
</varlistentry>
<listitem><para>Terminate the program.</para></listitem>
</varlistentry>
<varlistentry>
<term>p</term>
<term>t</term>
<term>c</term>
<term>m</term>
<term>i</term>
<varlistentry>
<term>p</term>
<term>t</term>
<term>c</term>
<term>m</term>
<term>i</term>
<listitem><para>Sort the control groups
by path, number of tasks, CPU load,
memory usage, or IO
load, respectively.</para></listitem>
</varlistentry>
<listitem><para>Sort the control groups by path, number of
tasks, CPU load, memory usage, or IO load, respectively.
</para></listitem>
</varlistentry>
<varlistentry>
<term>%</term>
<varlistentry>
<term>%</term>
<listitem><para>Toggle between showing CPU time as
time or percentage.</para></listitem>
</varlistentry>
<listitem><para>Toggle between showing CPU time as time or
percentage.</para></listitem>
</varlistentry>
<varlistentry>
<term>+</term>
<term>-</term>
<varlistentry>
<term>+</term>
<term>-</term>
<listitem><para>Increase
or decrease refresh
delay, respectively.</para></listitem>
</varlistentry>
<listitem><para>Increase or decrease refresh delay,
respectively.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cgls</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.resource-control</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>top</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,199 +21,175 @@
-->
<refentry id="systemd-cryptsetup-generator" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>systemd-cryptsetup-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-cryptsetup-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-cryptsetup-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-cryptsetup-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-cryptsetup-generator</refname>
<refpurpose>Unit generator for <filename>/etc/crypttab</filename></refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-cryptsetup-generator</refname>
<refpurpose>Unit generator for <filename>/etc/crypttab</filename></refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-cryptsetup-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-cryptsetup-generator</filename>
is a generator that translates
<filename>/etc/crypttab</filename> into native systemd
units early at boot and when configuration of the
system manager is reloaded. This will create
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
units as necessary.</para>
<para><filename>systemd-cryptsetup-generator</filename> is a
generator that translates <filename>/etc/crypttab</filename> into
native systemd units early at boot and when configuration of the
system manager is reloaded. This will create
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
units as necessary.</para>
<para><filename>systemd-cryptsetup-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<para><filename>systemd-cryptsetup-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para><filename>systemd-cryptsetup-generator</filename> understands
the following kernel command line parameters:</para>
<para><filename>systemd-cryptsetup-generator</filename>
understands the following kernel command line parameters:</para>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>luks=</varname></term>
<term><varname>rd.luks=</varname></term>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>luks=</varname></term>
<term><varname>rd.luks=</varname></term>
<listitem><para>Takes a boolean
argument. Defaults to
<literal>yes</literal>. If
<literal>no</literal>, disables the
generator
entirely. <varname>rd.luks=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks=</varname> is honored
by both the main system and the
initrd. </para></listitem>
</varlistentry>
<listitem><para>Takes a boolean argument. Defaults to
<literal>yes</literal>. If <literal>no</literal>, disables the
generator entirely. <varname>rd.luks=</varname> is honored
only by initial RAM disk (initrd) while
<varname>luks=</varname> is honored by both the main system
and the initrd. </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>luks.crypttab=</varname></term>
<term><varname>rd.luks.crypttab=</varname></term>
<varlistentry>
<term><varname>luks.crypttab=</varname></term>
<term><varname>rd.luks.crypttab=</varname></term>
<listitem><para>Takes a boolean
argument. Defaults to
<literal>yes</literal>. If
<literal>no</literal>, causes the
generator to ignore any devices
configured in
<filename>/etc/crypttab</filename>
(<varname>luks.uuid=</varname> will
still work
however). <varname>rd.luks.crypttab=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.crypttab=</varname> is
honored by both the main system and
the initrd. </para></listitem>
</varlistentry>
<listitem><para>Takes a boolean argument. Defaults to
<literal>yes</literal>. If <literal>no</literal>, causes the
generator to ignore any devices configured in
<filename>/etc/crypttab</filename>
(<varname>luks.uuid=</varname> will still work however).
<varname>rd.luks.crypttab=</varname> is honored only by
initial RAM disk (initrd) while
<varname>luks.crypttab=</varname> is honored by both the main
system and the initrd. </para></listitem>
</varlistentry>
<varlistentry>
<term><varname>luks.uuid=</varname></term>
<term><varname>rd.luks.uuid=</varname></term>
<varlistentry>
<term><varname>luks.uuid=</varname></term>
<term><varname>rd.luks.uuid=</varname></term>
<listitem><para>Takes a LUKS superblock
UUID as argument. This will
activate the specified device as part
of the boot process as if it was
listed in
<filename>/etc/crypttab</filename>. This
option may be specified more than once
in order to set up multiple
devices. <varname>rd.luks.uuid=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.uuid=</varname> is
honored by both the main system and
the initrd.</para>
<para>If /etc/crypttab contains entries with
the same UUID, then the name, keyfile and options
specified there will be used. Otherwise the device
will have the name <literal>luks-UUID</literal>.</para>
<para>If /etc/crypttab exists, only those UUIDs
specified on the kernel command line
will be activated in the initrd or the real root.</para>
</listitem>
</varlistentry>
<listitem><para>Takes a LUKS superblock UUID as argument. This
will activate the specified device as part of the boot process
as if it was listed in <filename>/etc/crypttab</filename>.
This option may be specified more than once in order to set up
multiple devices. <varname>rd.luks.uuid=</varname> is honored
only by initial RAM disk (initrd) while
<varname>luks.uuid=</varname> is honored by both the main
system and the initrd.</para>
<para>If /etc/crypttab contains entries with the same UUID,
then the name, keyfile and options specified there will be
used. Otherwise the device will have the name
<literal>luks-UUID</literal>.</para>
<para>If /etc/crypttab exists, only those UUIDs
specified on the kernel command line
will be activated in the initrd or the real root.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>luks.name=</varname></term>
<term><varname>rd.luks.name=</varname></term>
<varlistentry>
<term><varname>luks.name=</varname></term>
<term><varname>rd.luks.name=</varname></term>
<listitem><para>Takes a LUKS super
block UUID followed by an '=' and a name. This implies
<varname>rd.luks.uuid=</varname> or <varname>luks.uuid=</varname>
and will additionally make the LUKS device given by
the UUID appear under the provided name.</para>
<listitem><para>Takes a LUKS super block UUID followed by an
<literal>=</literal> and a name. This implies
<varname>rd.luks.uuid=</varname> or
<varname>luks.uuid=</varname> and will additionally make the
LUKS device given by the UUID appear under the provided
name.</para>
<para><varname>rd.luks.name=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.name=</varname> is
honored by both the main system and
the initrd.</para>
</listitem>
</varlistentry>
<para><varname>rd.luks.name=</varname> is honored only by
initial RAM disk (initrd) while <varname>luks.name=</varname>
is honored by both the main system and the initrd.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>luks.options=</varname></term>
<term><varname>rd.luks.options=</varname></term>
<varlistentry>
<term><varname>luks.options=</varname></term>
<term><varname>rd.luks.options=</varname></term>
<listitem><para>Takes a LUKS super
block UUID followed by an '=' and a string
of options separated by commas as argument.
This will override the options for the given
UUID.</para>
<para>If only a list of options, without an
UUID, is specified, they apply to any UUIDs not
specified elsewhere, and without an entry in
/etc/crypttab.</para><para>
<varname>rd.luks.options=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.options=</varname> is
honored by both the main system and
the initrd.</para>
</listitem>
</varlistentry>
<listitem><para>Takes a LUKS super block UUID followed by an
<literal>=</literal> and a string of options separated by
commas as argument. This will override the options for the
given UUID.</para>
<para>If only a list of options, without an UUID, is
specified, they apply to any UUIDs not specified elsewhere,
and without an entry in
<filename>/etc/crypttab</filename>.</para><para>
<varname>rd.luks.options=</varname> is honored only by initial
RAM disk (initrd) while <varname>luks.options=</varname> is
honored by both the main system and the initrd.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><varname>luks.key=</varname></term>
<term><varname>rd.luks.key=</varname></term>
<varlistentry>
<term><varname>luks.key=</varname></term>
<term><varname>rd.luks.key=</varname></term>
<listitem><para>Takes a password file name as argument or
a LUKS super block UUID followed by a '=' and a password
file name.</para>
<listitem><para>Takes a password file name as argument or a
LUKS super block UUID followed by a <literal>=</literal> and a
password file name.</para>
<para>For those entries specified with
<varname>rd.luks.uuid=</varname> or <varname>luks.uuid=</varname>,
the password file will be set to the one specified by
<varname>rd.luks.key=</varname> or <varname>luks.key=</varname>
of the corresponding UUID, or the password file that was specified
without a UUID.</para>
<para><varname>rd.luks.key=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.key=</varname> is
honored by both the main system and
the initrd.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<para>For those entries specified with
<varname>rd.luks.uuid=</varname> or
<varname>luks.uuid=</varname>, the password file will be set
to the one specified by <varname>rd.luks.key=</varname> or
<varname>luks.key=</varname> of the corresponding UUID, or the
password file that was specified without a UUID.</para>
<para><varname>rd.luks.key=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>luks.key=</varname> is
honored by both the main system and
the initrd.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,67 +21,65 @@
-->
<refentry id="systemd-cryptsetup@.service" conditional='HAVE_LIBCRYPTSETUP'>
<refentryinfo>
<title>systemd-cryptsetup@.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-cryptsetup@.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-cryptsetup@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-cryptsetup@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-cryptsetup@.service</refname>
<refname>systemd-cryptsetup</refname>
<refpurpose>Full disk decryption logic</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-cryptsetup@.service</refname>
<refname>systemd-cryptsetup</refname>
<refpurpose>Full disk decryption logic</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-cryptsetup@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-cryptsetup</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-cryptsetup@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-cryptsetup</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-cryptsetup@.service</filename>
is a service responsible for setting up encrypted
block devices. It is instantiated for each device that
requires decryption for access.</para>
<para><filename>systemd-cryptsetup@.service</filename> is a
service responsible for setting up encrypted block devices. It is
instantiated for each device that requires decryption for
access.</para>
<para><filename>systemd-cryptsetup@.service</filename>
will ask for hard disk passwords via the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">
password agent logic</ulink>, in order to query the
user for the password using the right mechanism at
boot and during runtime.</para>
<para><filename>systemd-cryptsetup@.service</filename> will ask
for hard disk passwords via the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/PasswordAgents">
password agent logic</ulink>, in order to query the user for the
password using the right mechanism at boot and during
runtime.</para>
<para>At early boot and when the system manager
configuration is reloaded this
<filename>/etc/crypttab</filename> is translated into
<filename>systemd-cryptsetup@.service</filename> units
by
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<para>At early boot and when the system manager configuration is
reloaded this <filename>/etc/crypttab</filename> is translated
into <filename>systemd-cryptsetup@.service</filename> units by
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,78 +21,77 @@
-->
<refentry id="systemd-debug-generator">
<refentryinfo>
<title>systemd-debug-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-debug-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-debug-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-debug-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-debug-generator</refname>
<refpurpose>Generator for enabling a runtime debug shell and masking specific units at boot</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-debug-generator</refname>
<refpurpose>Generator for enabling a runtime debug shell and
masking specific units at boot</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-debug-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-debug-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-debug-generator</filename> is
a generator that reads the kernel command line and
understands three options:</para>
<para><filename>systemd-debug-generator</filename> is a generator
that reads the kernel command line and understands three
options:</para>
<para>If the <option>systemd.mask=</option> option is
specified and followed by a unit name, this unit is
masked for the runtime, similar to the effect of
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>mask</command> command. This is useful to
boot with certain units removed from the initial boot
transaction for debugging system startup. May be
specified more than once.</para>
<para>If the <option>systemd.mask=</option> option is specified
and followed by a unit name, this unit is masked for the runtime,
similar to the effect of
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>mask</command> command. This is useful to boot with
certain units removed from the initial boot transaction for
debugging system startup. May be specified more than once.</para>
<para>If the <option>systemd.wants=</option> option is
specified and followed by a unit name, a start job for
this unit is added to the initial transaction. This is
useful to start one or more additional units at
boot. May be specified more than once.</para>
<para>If the <option>systemd.wants=</option> option is specified
and followed by a unit name, a start job for this unit is added to
the initial transaction. This is useful to start one or more
additional units at boot. May be specified more than once.</para>
<para>If the <option>systemd.debug-shell</option>
option is specified, the debug shell service
<literal>debug-shell.service</literal> is pulled into
the boot transaction. It will spawn a debug shell on
tty9 during early system startup. Note that the shell
may also be turned on persistently by enabling it with
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>enable</command> command.</para>
<para>If the <option>systemd.debug-shell</option> option is
specified, the debug shell service
<literal>debug-shell.service</literal> is pulled into the boot
transaction. It will spawn a debug shell on tty9 during early
system startup. Note that the shell may also be turned on
persistently by enabling it with
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>'s
<command>enable</command> command.</para>
<para><filename>systemd-debug-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<para><filename>systemd-debug-generator</filename> implements the
<ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,195 +22,184 @@
-->
<refentry id="systemd-delta"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-delta</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-delta</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-delta</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-delta</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-delta</refname>
<refpurpose>Find overridden configuration files</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-delta</refname>
<refpurpose>Find overridden configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-delta</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt" rep="repeat"><replaceable>PREFIX</replaceable><optional>/<replaceable>SUFFIX</replaceable></optional>|<replaceable>SUFFIX</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-delta</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt" rep="repeat"><replaceable>PREFIX</replaceable><optional>/<replaceable>SUFFIX</replaceable></optional>|<replaceable>SUFFIX</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-delta</command> may be used to
identify and compare configuration files that override
other configuration files. Files in
<filename>/etc</filename> have highest priority, files
in <filename>/run</filename> have the second highest
priority, ..., files in <filename>/lib</filename> have
lowest priority. Files in a directory with higher
priority override files with the same name in
directories of lower priority. In addition, certain
configuration files can have <literal>.d</literal>
directories which contain "drop-in" files with
configuration snippets which augment the main
configuration file. "Drop-in" files can be overriden
in the same way by placing files with the same name in
a directory of higher priority (except that in case of
"drop-in" files, both the "drop-in" file name and the
name of the containing directory, which corresponds to
the name of the main configuration file, must match).
For a fuller explanation, see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<para><command>systemd-delta</command> may be used to identify and
compare configuration files that override other configuration
files. Files in <filename>/etc</filename> have highest priority,
files in <filename>/run</filename> have the second highest
priority, ..., files in <filename>/lib</filename> have lowest
priority. Files in a directory with higher priority override files
with the same name in directories of lower priority. In addition,
certain configuration files can have <literal>.d</literal>
directories which contain "drop-in" files with configuration
snippets which augment the main configuration file. "Drop-in"
files can be overriden in the same way by placing files with the
same name in a directory of higher priority (except that in case
of "drop-in" files, both the "drop-in" file name and the name of
the containing directory, which corresponds to the name of the
main configuration file, must match). For a fuller explanation,
see
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para>
<para>The command line argument will be split into a
prefix and a suffix. Either is optional. The prefix
must be one of the directories containing
configuration files (<filename>/etc</filename>,
<filename>/run</filename>,
<filename>/usr/lib</filename>, ...). If it is given,
only overriding files contained in this directory will
be shown. Otherwise, all overriding files will be
shown. The suffix must be a name of a subdirectory
containing configuration files like
<filename>tmpfiles.d</filename>,
<filename>sysctl.d</filename> or
<filename>systemd/system</filename>. If it is given,
only configuration files in this subdirectory (across
all configuration paths) will be analyzed. Otherwise,
all configuration files will be analyzed. If the
command line argument is not given at all, all
configuration files will be analyzed. See below for
some examples.</para>
</refsect1>
<para>The command line argument will be split into a prefix and a
suffix. Either is optional. The prefix must be one of the
directories containing configuration files
(<filename>/etc</filename>, <filename>/run</filename>,
<filename>/usr/lib</filename>, ...). If it is given, only
overriding files contained in this directory will be shown.
Otherwise, all overriding files will be shown. The suffix must be
a name of a subdirectory containing configuration files like
<filename>tmpfiles.d</filename>, <filename>sysctl.d</filename> or
<filename>systemd/system</filename>. If it is given, only
configuration files in this subdirectory (across all configuration
paths) will be analyzed. Otherwise, all configuration files will
be analyzed. If the command line argument is not given at all, all
configuration files will be analyzed. See below for some
examples.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-t</option></term>
<term><option>--type=</option></term>
<variablelist>
<varlistentry>
<term><option>-t</option></term>
<term><option>--type=</option></term>
<listitem><para>When listing the
differences, only list those that are
asked for. The list itself is a
comma-separated list of desired
difference types.</para>
<listitem><para>When listing the differences, only list those
that are asked for. The list itself is a comma-separated list
of desired difference types.</para>
<para>Recognized types are:
<para>Recognized types are:
<variablelist>
<varlistentry>
<term><varname>masked</varname></term>
<variablelist>
<varlistentry>
<term><varname>masked</varname></term>
<listitem><para>Show masked files</para></listitem>
</varlistentry>
<listitem><para>Show masked files</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>equivalent</varname></term>
<varlistentry>
<term><varname>equivalent</varname></term>
<listitem><para>Show overridden
files that while overridden, do
not differ in content.</para></listitem>
</varlistentry>
<listitem><para>Show overridden files that while
overridden, do not differ in content.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>redirected</varname></term>
<varlistentry>
<term><varname>redirected</varname></term>
<listitem><para>Show files that
are redirected to another.</para></listitem>
</varlistentry>
<listitem><para>Show files that are redirected to
another.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>overridden</varname></term>
<varlistentry>
<term><varname>overridden</varname></term>
<listitem><para>Show overridden,
and changed files.</para></listitem>
</varlistentry>
<listitem><para>Show overridden, and changed
files.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>extended</varname></term>
<varlistentry>
<term><varname>extended</varname></term>
<listitem><para>Show *.conf files in drop-in
directories for units.</para></listitem>
</varlistentry>
<listitem><para>Show <filename>*.conf</filename> files
in drop-in directories for units.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>unchanged</varname></term>
<varlistentry>
<term><varname>unchanged</varname></term>
<listitem><para>Show unmodified
files too.</para></listitem>
</varlistentry>
</variablelist>
</para></listitem>
</varlistentry>
<listitem><para>Show unmodified files
too.</para></listitem>
</varlistentry>
</variablelist>
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--diff=</option></term>
<varlistentry>
<term><option>--diff=</option></term>
<listitem><para>When showing modified
files, when a file is overridden show a
diff as well. This option takes a
boolean argument. If omitted, it defaults
to <option>true</option>.</para></listitem>
</varlistentry>
<listitem><para>When showing modified files, when a file is
overridden show a diff as well. This option takes a boolean
argument. If omitted, it defaults to
<option>true</option>.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
</refsect1>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
<xi:include href="standard-options.xml" xpointer="no-pager" />
</variablelist>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>To see all local configuration:</para>
<programlisting>systemd-delta</programlisting>
<para>To see all local configuration:</para>
<programlisting>systemd-delta</programlisting>
<para>To see all runtime configuration:</para>
<programlisting>systemd-delta /run</programlisting>
<para>To see all runtime configuration:</para>
<programlisting>systemd-delta /run</programlisting>
<para>To see all system unit configuration changes:</para>
<programlisting>systemd-delta systemd/system</programlisting>
<para>To see all system unit configuration changes:</para>
<programlisting>systemd-delta systemd/system</programlisting>
<para>To see all runtime "drop-in" changes for system units:</para>
<programlisting>systemd-delta --type=extended /run/systemd/system</programlisting>
</refsect1>
<para>To see all runtime "drop-in" changes for system units:</para>
<programlisting>systemd-delta --type=extended /run/systemd/system</programlisting>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,210 +22,202 @@
-->
<refentry id="systemd-detect-virt"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-detect-virt</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-detect-virt</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-detect-virt</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-detect-virt</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-detect-virt</refname>
<refpurpose>Detect execution in a virtualized environment</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-detect-virt</refname>
<refpurpose>Detect execution in a virtualized environment</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-detect-virt <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-detect-virt <arg choice="opt" rep="repeat">OPTIONS</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-detect-virt</command> detects
execution in a virtualized environment. It identifies
the virtualization technology and can distinguish full
VM virtualization from container
virtualization. <filename>systemd-detect-virt</filename>
exits with a return value of 0 (success) if a
virtualization technology is detected, and non-zero
(error) otherwise. By default any type of
virtualization is detected, and the options
<option>--container</option> and <option>--vm</option>
can be used to limit what types of virtualization are
detected.</para>
<para><command>systemd-detect-virt</command> detects execution in
a virtualized environment. It identifies the virtualization
technology and can distinguish full VM virtualization from
container virtualization. <filename>systemd-detect-virt</filename>
exits with a return value of 0 (success) if a virtualization
technology is detected, and non-zero (error) otherwise. By default
any type of virtualization is detected, and the options
<option>--container</option> and <option>--vm</option> can be used
to limit what types of virtualization are detected.</para>
<para>When executed without <option>--quiet</option>
will print a short identifier for the detected
virtualization technology. The following technologies
are currently identified:</para>
<para>When executed without <option>--quiet</option> will print a
short identifier for the detected virtualization technology. The
following technologies are currently identified:</para>
<table>
<title>Known virtualization technologies (both
VM, i.e. full hardware virtualization,
and container, i.e. shared kernel virtualization)</title>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="type" />
<colspec colname="id" />
<colspec colname="product" />
<thead>
<row>
<entry>Type</entry>
<entry>ID</entry>
<entry>Product</entry>
</row>
</thead>
<tbody>
<row>
<entry morerows="8">VM</entry>
<entry><varname>qemu</varname></entry>
<entry>QEMU software virtualization</entry>
</row>
<table>
<title>Known virtualization technologies (both
VM, i.e. full hardware virtualization,
and container, i.e. shared kernel virtualization)</title>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="type" />
<colspec colname="id" />
<colspec colname="product" />
<thead>
<row>
<entry>Type</entry>
<entry>ID</entry>
<entry>Product</entry>
</row>
</thead>
<tbody>
<row>
<entry morerows="8">VM</entry>
<entry><varname>qemu</varname></entry>
<entry>QEMU software virtualization</entry>
</row>
<row>
<entry><varname>kvm</varname></entry>
<entry>Linux KVM kernel virtual machine</entry>
</row>
<row>
<entry><varname>kvm</varname></entry>
<entry>Linux KVM kernel virtual machine</entry>
</row>
<row>
<entry><varname>zvm</varname></entry>
<entry>s390 z/VM</entry>
</row>
<row>
<entry><varname>zvm</varname></entry>
<entry>s390 z/VM</entry>
</row>
<row>
<entry><varname>vmware</varname></entry>
<entry>VMware Workstation or Server, and related products</entry>
</row>
<row>
<entry><varname>vmware</varname></entry>
<entry>VMware Workstation or Server, and related products</entry>
</row>
<row>
<entry><varname>microsoft</varname></entry>
<entry>Hyper-V, also known as Viridian or Windows Server Virtualization</entry>
</row>
<row>
<entry><varname>microsoft</varname></entry>
<entry>Hyper-V, also known as Viridian or Windows Server Virtualization</entry>
</row>
<row>
<entry><varname>oracle</varname></entry>
<entry>Oracle VM VirtualBox (historically marketed by innotek and Sun Microsystems)</entry>
</row>
<row>
<entry><varname>oracle</varname></entry>
<entry>Oracle VM VirtualBox (historically marketed by innotek and Sun Microsystems)</entry>
</row>
<row>
<entry><varname>xen</varname></entry>
<entry>Xen hypervisor (only domU, not dom0)</entry>
</row>
<row>
<entry><varname>xen</varname></entry>
<entry>Xen hypervisor (only domU, not dom0)</entry>
</row>
<row>
<entry><varname>bochs</varname></entry>
<entry>Bochs Emulator</entry>
</row>
<row>
<entry><varname>bochs</varname></entry>
<entry>Bochs Emulator</entry>
</row>
<row>
<entry><varname>uml</varname></entry>
<entry>User-mode Linux</entry>
</row>
<row>
<entry><varname>uml</varname></entry>
<entry>User-mode Linux</entry>
</row>
<row>
<entry morerows="5">container</entry>
<entry><varname>openvz</varname></entry>
<entry>OpenVZ/Virtuozzo</entry>
</row>
<row>
<entry morerows="5">container</entry>
<entry><varname>openvz</varname></entry>
<entry>OpenVZ/Virtuozzo</entry>
</row>
<row>
<entry><varname>lxc</varname></entry>
<entry>Linux container implementation by LXC</entry>
</row>
<row>
<entry><varname>lxc</varname></entry>
<entry>Linux container implementation by LXC</entry>
</row>
<row>
<entry><varname>lxc-libvirt</varname></entry>
<entry>Linux container implementation by libvirt</entry>
</row>
<row>
<entry><varname>lxc-libvirt</varname></entry>
<entry>Linux container implementation by libvirt</entry>
</row>
<row>
<entry><varname>systemd-nspawn</varname></entry>
<entry>systemd's minimal container implementation, see <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></entry>
</row>
<row>
<entry><varname>systemd-nspawn</varname></entry>
<entry>systemd's minimal container implementation, see <citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry></entry>
</row>
<row>
<entry><varname>docker</varname></entry>
<entry>Docker container manager</entry>
</row>
</tbody>
</tgroup>
</table>
<row>
<entry><varname>docker</varname></entry>
<entry>Docker container manager</entry>
</row>
</tbody>
</tgroup>
</table>
<para>If multiple virtualization solutions are used,
only the "innermost" is detected and identified. That
means if both VM virtualization and container
virtualization are used in conjunction, only the latter
will be identified (unless <option>--vm</option> is
passed).</para>
</refsect1>
<para>If multiple virtualization solutions are used, only the
"innermost" is detected and identified. That means if both VM
virtualization and container virtualization are used in
conjunction, only the latter will be identified (unless
<option>--vm</option> is passed).</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>-c</option></term>
<term><option>--container</option></term>
<variablelist>
<varlistentry>
<term><option>-c</option></term>
<term><option>--container</option></term>
<listitem><para>Only detects container
virtualization (i.e. shared kernel
virtualization).</para></listitem>
</varlistentry>
<listitem><para>Only detects container virtualization (i.e.
shared kernel virtualization).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-v</option></term>
<term><option>--vm</option></term>
<varlistentry>
<term><option>-v</option></term>
<term><option>--vm</option></term>
<listitem><para>Only detects VM
virtualization (i.e. full hardware
virtualization).</para></listitem>
</varlistentry>
<listitem><para>Only detects VM virtualization (i.e. full
hardware virtualization).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<term><option>--quiet</option></term>
<varlistentry>
<term><option>-q</option></term>
<term><option>--quiet</option></term>
<listitem><para>Suppress output of the
virtualization technology
identifier.</para></listitem>
</varlistentry>
<listitem><para>Suppress output of the virtualization
technology identifier.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>If a virtualization technology is detected, 0 is
returned, a non-zero code otherwise.</para>
</refsect1>
<para>If a virtualization technology is detected, 0 is returned, a
non-zero code otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-nspawn</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,68 +21,68 @@
-->
<refentry id="systemd-efi-boot-generator">
<refentryinfo>
<title>systemd-efi-boot-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-efi-boot-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-efi-boot-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-efi-boot-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-efi-boot-generator</refname>
<refpurpose>Generator for automatically mounting the
EFI System Partition used by the current boot to
<filename>/boot</filename></refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-efi-boot-generator</refname>
<refpurpose>Generator for automatically mounting the
EFI System Partition used by the current boot to
<filename>/boot</filename></refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-efi-boot-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-efi-boot-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-efi-boot-generator</filename>
is a generator that automatically creates mount and
automount units for the EFI System Partition (ESP),
mounting it to <filename>/boot</filename>. Note that
this generator will execute no operation on non-EFI
systems, on systems where the boot loader does not
communicate the used ESP to the OS, on systems where
<filename>/boot</filename> is an explicitly configured
mount (for example, listed in <citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>) or where the <filename>/boot</filename> mount
point is non-empty. Since this generator creates an
automount unit, the mount will only be activated
on-demand, when accessed.</para>
<para><filename>systemd-efi-boot-generator</filename> is a
generator that automatically creates mount and automount units for
the EFI System Partition (ESP), mounting it to
<filename>/boot</filename>. Note that this generator will execute
no operation on non-EFI systems, on systems where the boot loader
does not communicate the used ESP to the OS, on systems where
<filename>/boot</filename> is an explicitly configured mount (for
example, listed in
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>)
or where the <filename>/boot</filename> mount point is non-empty.
Since this generator creates an automount unit, the mount will
only be activated on-demand, when accessed.</para>
<para><filename>systemd-efi-boot-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<para><filename>systemd-efi-boot-generator</filename> implements
the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gummiboot</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-gpt-auto-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>gummiboot</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,172 +22,157 @@
-->
<refentry id="systemd-escape"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-escape</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-escape</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-escape</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-escape</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-escape</refname>
<refpurpose>Escape strings for usage in system unit names</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-escape</refname>
<refpurpose>Escape strings for usage in system unit names</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-escape <arg choice="opt" rep="repeat">OPTIONS</arg> <arg choice="opt" rep="repeat">STRING</arg></command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-escape</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
<arg choice="opt" rep="repeat">STRING</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-escape</command> may be used to
escape strings for inclusion in systemd unit
names. The command may be used to escape and to undo
escaping of strings.</para>
<para><command>systemd-escape</command> may be used to escape
strings for inclusion in systemd unit names. The command may be
used to escape and to undo escaping of strings.</para>
<para>The command takes any number of strings on the
command line, and will process them individually, one
after the other. It will output them separated by
spaces to stdout.</para>
<para>The command takes any number of strings on the command line,
and will process them individually, one after the other. It will
output them separated by spaces to stdout.</para>
<para>By default this command will escape the strings
passed, unless <option>--unescape</option> is passed
which results in the inverse operation being
applied. If <option>--mangle</option> a special mode
of escaping is applied instead, which assumes a string
to be already escaped but will escape everything that
appears obviously non-escaped.</para>
</refsect1>
<para>By default this command will escape the strings passed,
unless <option>--unescape</option> is passed which results in the
inverse operation being applied. If <option>--mangle</option> a
special mode of escaping is applied instead, which assumes a
string to be already escaped but will escape everything that
appears obviously non-escaped.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--suffix=</option></term>
<variablelist>
<varlistentry>
<term><option>--suffix=</option></term>
<listitem><para>Appends the specified
unit type suffix to the escaped
string. Takes one of the unit types
supported by systemd, such as
<literal>.service</literal> or
<literal>.mount</literal>. May not be
used in conjunction with
<option>--template=</option>,
<option>--unescape</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<listitem><para>Appends the specified unit type suffix to the
escaped string. Takes one of the unit types supported by
systemd, such as <literal>.service</literal> or
<literal>.mount</literal>. May not be used in conjunction with
<option>--template=</option>, <option>--unescape</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--template=</option></term>
<varlistentry>
<term><option>--template=</option></term>
<listitem><para>Inserts the escaped
strings in a unit name template. Takes
a unit name template such as
<filename>foobar@.service</filename>
May not be used in conjunction with
<option>--suffix=</option>,
<option>--unescape</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<listitem><para>Inserts the escaped strings in a unit name
template. Takes a unit name template such as
<filename>foobar@.service</filename> May not be used in
conjunction with <option>--suffix=</option>,
<option>--unescape</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--path</option></term>
<term><option>-p</option></term>
<varlistentry>
<term><option>--path</option></term>
<term><option>-p</option></term>
<listitem><para>When escaping or
unescaping a string, assume it refers
to a file system path. This enables
special processing of the initial
<literal>/</literal> of the
path.</para></listitem>
</varlistentry>
<listitem><para>When escaping or unescaping a string, assume
it refers to a file system path. This enables special
processing of the initial <literal>/</literal> of the
path.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--unescape</option></term>
<varlistentry>
<term><option>--unescape</option></term>
<listitem><para>Instead of escaping
the specified strings, undo the
escaping, reversing the operation. May
not be used in conjunction with
<option>--suffix=</option>,
<option>--template=</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<listitem><para>Instead of escaping the specified strings,
undo the escaping, reversing the operation. May not be used in
conjunction with <option>--suffix=</option>,
<option>--template=</option> or
<option>--mangle</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--mangle</option></term>
<varlistentry>
<term><option>--mangle</option></term>
<listitem><para>Like
<option>--escape</option>, but only
escape characters that are obviously
not escaped yet, and possibly
automatically append an appropriate
unit type suffix to the string. May
not be used in conjunction with
<option>--suffix=</option>,
<option>--template=</option> or
<option>--unescape</option>.</para></listitem>
</varlistentry>
<listitem><para>Like <option>--escape</option>, but only
escape characters that are obviously not escaped yet, and
possibly automatically append an appropriate unit type suffix
to the string. May not be used in conjunction with
<option>--suffix=</option>, <option>--template=</option> or
<option>--unescape</option>.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Examples</title>
<refsect1>
<title>Examples</title>
<para>Escape a single string:</para>
<programlisting>$ systemd-escape 'Hallöchen, Meister'
<para>Escape a single string:</para>
<programlisting>$ systemd-escape 'Hallöchen, Meister'
Hall\xc3\xb6chen\x2c\x20Meister</programlisting>
<para>To undo escaping on a single string:</para>
<programlisting>$ systemd-escape -u 'Hall\xc3\xb6chen\x2c\x20Meister'
<para>To undo escaping on a single string:</para>
<programlisting>$ systemd-escape -u 'Hall\xc3\xb6chen\x2c\x20Meister'
Hallöchen, Meister</programlisting>
<para>To generate the mount unit for a path:</para>
<programlisting>$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
<para>To generate the mount unit for a path:</para>
<programlisting>$ systemd-escape -p --suffix=mount "/tmp//waldi/foobar/"
tmp-waldi-foobar.mount</programlisting>
<para>To generate instance names of three strings</para>
<programlisting>$ systemd-escape --template=systemd-nspawn@.service 'My Container 1' 'containerb' 'container/III'
<para>To generate instance names of three strings</para>
<programlisting>$ systemd-escape --template=systemd-nspawn@.service 'My Container 1' 'containerb' 'container/III'
systemd-nspawn@My\x20Container\x201.service systemd-nspawn@containerb.service systemd-nspawn@container-III.service</programlisting>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,265 +22,238 @@
-->
<refentry id="systemd-firstboot"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-firstboot</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-firstboot</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-firstboot</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-firstboot</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-firstboot</refname>
<refname>systemd-firstboot.service</refname>
<refpurpose>Initialize basic system settings on or before the first boot-up of a system</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-firstboot</refname>
<refname>systemd-firstboot.service</refname>
<refpurpose>Initialize basic system settings on or before the first boot-up of a system</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-firstboot</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-firstboot</command>
<arg choice="opt" rep="repeat">OPTIONS</arg>
</cmdsynopsis>
<para><filename>systemd-firstboot.service</filename></para>
</refsynopsisdiv>
<para><filename>systemd-firstboot.service</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-firstboot</command> initializes
the most basic system settings interactively on the
first boot, or optionally non-interactively when a
system image is created. The following settings may be
set up:</para>
<para><command>systemd-firstboot</command> initializes the most
basic system settings interactively on the first boot, or
optionally non-interactively when a system image is created. The
following settings may be set up:</para>
<itemizedlist>
<listitem><para>The system locale, more
specifically the two locale variables
<varname>LANG=</varname> and
<varname>LC_MESSAGES</varname></para></listitem>
<itemizedlist>
<listitem><para>The system locale, more specifically the two
locale variables <varname>LANG=</varname> and
<varname>LC_MESSAGES</varname></para></listitem>
<listitem><para>The system time zone</para></listitem>
<listitem><para>The system time zone</para></listitem>
<listitem><para>The system host name</para></listitem>
<listitem><para>The system host name</para></listitem>
<listitem><para>The machine ID of the system</para></listitem>
<listitem><para>The machine ID of the system</para></listitem>
<listitem><para>The root user's password</para></listitem>
</itemizedlist>
<listitem><para>The root user's password</para></listitem>
</itemizedlist>
<para>Each of the fields may either be queried
interactively from the users, set non-interactively on
the tool's command line, or be copied from a host
system that is used to set up the system image.</para>
<para>Each of the fields may either be queried interactively from
the users, set non-interactively on the tool's command line, or be
copied from a host system that is used to set up the system
image.</para>
<para>If a setting is already initialized it will not
be overwritten and the user will not be prompted for
the setting.</para>
<para>If a setting is already initialized it will not be
overwritten and the user will not be prompted for the
setting.</para>
<para>Note that this tool operates directly on the
file system and does not involve any running system
services, unlike
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
or
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. This
allows <command>systemd-firstboot</command> to operate
on mounted but not booted disk images and in early
boot. It is not recommended to use
<command>systemd-firstboot</command> on the running
system while it is up.</para>
</refsect1>
<para>Note that this tool operates directly on the file system and
does not involve any running system services, unlike
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
or
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
This allows <command>systemd-firstboot</command> to operate on
mounted but not booted disk images and in early boot. It is not
recommended to use <command>systemd-firstboot</command> on the
running system while it is up.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<replaceable>root</replaceable> path,
including config search paths. This is
useful to operate on a system image
mounted to the specified directory
instead of the host system itself.
</para></listitem>
</varlistentry>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path as an argument. All
paths will be prefixed with the given alternate
<replaceable>root</replaceable> path, including config search
paths. This is useful to operate on a system image mounted to
the specified directory instead of the host system itself.
</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--locale=<replaceable>LOCALE</replaceable></option></term>
<term><option>--locale-messages=<replaceable>LOCALE</replaceable></option></term>
<varlistentry>
<term><option>--locale=<replaceable>LOCALE</replaceable></option></term>
<term><option>--locale-messages=<replaceable>LOCALE</replaceable></option></term>
<listitem><para>Sets the system
locale, more specifically the
<varname>LANG=</varname> and
<varname>LC_MESSAGES</varname>
settings. The argument should be a
valid locale identifier, such as
<literal>de_DE.UTF-8</literal>. This
controls the
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file.</para></listitem>
</varlistentry>
<listitem><para>Sets the system locale, more specifically the
<varname>LANG=</varname> and <varname>LC_MESSAGES</varname>
settings. The argument should be a valid locale identifier,
such as <literal>de_DE.UTF-8</literal>. This controls the
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--timezone=<replaceable>TIMEZONE</replaceable></option></term>
<varlistentry>
<term><option>--timezone=<replaceable>TIMEZONE</replaceable></option></term>
<listitem><para>Sets the system time
zone. The argument should be a valid
time zone identifier, such as
<literal>Europe/Berlin</literal>. This
controls the
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry>
symlink.</para></listitem>
</varlistentry>
<listitem><para>Sets the system time zone. The argument should
be a valid time zone identifier, such as
<literal>Europe/Berlin</literal>. This controls the
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry>
symlink.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--hostname=<replaceable>HOSTNAME</replaceable></option></term>
<varlistentry>
<term><option>--hostname=<replaceable>HOSTNAME</replaceable></option></term>
<listitem><para>Sets the system
hostname. The argument should be a
host name, compatible with DNS. This
controls the
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file.</para></listitem>
</varlistentry>
<listitem><para>Sets the system hostname. The argument should
be a host name, compatible with DNS. This controls the
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--machine-id=<replaceable>ID</replaceable></option></term>
<varlistentry>
<term><option>--machine-id=<replaceable>ID</replaceable></option></term>
<listitem><para>Sets the system's machine ID. This
controls the
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file.</para></listitem>
</varlistentry>
<listitem><para>Sets the system's machine ID. This controls
the
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--root-password=<replaceable>PASSWORD</replaceable></option></term>
<term><option>--root-password-file=<replaceable>PATH</replaceable></option></term>
<varlistentry>
<term><option>--root-password=<replaceable>PASSWORD</replaceable></option></term>
<term><option>--root-password-file=<replaceable>PATH</replaceable></option></term>
<listitem><para>Sets the password of
the system's root user. This creates a
<citerefentry><refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file. This setting exists in two
forms:
<option>--root-password=</option>
accepts the password to set directly
on the command line,
<option>--root-password-file=</option>
reads it from a file. Note that
it is not recommended specifying
passwords on the command line as other
users might be able to see them
simply by invoking
<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
<listitem><para>Sets the password of the system's root user.
This creates a
<citerefentry><refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file. This setting exists in two forms:
<option>--root-password=</option> accepts the password to set
directly on the command line,
<option>--root-password-file=</option> reads it from a file.
Note that it is not recommended specifying passwords on the
command line as other users might be able to see them simply
by invoking
<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--prompt-locale</option></term>
<term><option>--prompt-timezone</option></term>
<term><option>--prompt-hostname</option></term>
<term><option>--prompt-root-password</option></term>
<varlistentry>
<term><option>--prompt-locale</option></term>
<term><option>--prompt-timezone</option></term>
<term><option>--prompt-hostname</option></term>
<term><option>--prompt-root-password</option></term>
<para>Prompt the user interactively
for a specific basic setting. Note
that any explicit configuration
settings specified on the command line
take precedence, and the user is not
prompted for it.</para>
</varlistentry>
<listitem><para>Prompt the user interactively for a specific
basic setting. Note that any explicit configuration settings
specified on the command line take precedence, and the user is
not prompted for it.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--prompt</option></term>
<varlistentry>
<term><option>--prompt</option></term>
<para>Query the user for locale,
timezone, hostname and root
password. This is equivalent to
specifying
<option>--prompt-locale</option>,
<option>--prompt-timezone</option>,
<option>--prompt-hostname</option>,
<option>--prompt-root-password</option>
in combination.</para>
</varlistentry>
<listitem><para>Query the user for locale, timezone, hostname
and root password. This is equivalent to specifying
<option>--prompt-locale</option>,
<option>--prompt-timezone</option>,
<option>--prompt-hostname</option>,
<option>--prompt-root-password</option> in combination.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--copy-locale</option></term>
<term><option>--copy-timezone</option></term>
<term><option>--copy-root-password</option></term>
<varlistentry>
<term><option>--copy-locale</option></term>
<term><option>--copy-timezone</option></term>
<term><option>--copy-root-password</option></term>
<para>Copy a specific basic setting
from the host. This only works in
combination with
<option>--root=</option> (see
above).</para>
</varlistentry>
<listitem><para>Copy a specific basic setting from the host.
This only works in combination with <option>--root=</option>
(see above).</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--copy</option></term>
<varlistentry>
<term><option>--copy</option></term>
<para>Copy locale, time zone and root
password from the host. This is
equivalent to specifying
<option>--copy-locale</option>,
<option>--copy-timezone</option>,
<option>--copy-root-password</option>
in combination.</para>
</varlistentry>
<listitem><para>Copy locale, time zone and root password from
the host. This is equivalent to specifying
<option>--copy-locale</option>,
<option>--copy-timezone</option>,
<option>--copy-root-password</option> in combination.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--setup-machine-id</option></term>
<varlistentry>
<term><option>--setup-machine-id</option></term>
<para>Initialize the system's machine
ID to a random ID. This only works in
combination with
<option>--root=</option>.</para>
</varlistentry>
<listitem><para>Initialize the system's machine ID to a random
ID. This only works in combination with
<option>--root=</option>.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localtime</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>shadow</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>timedatectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,137 +21,121 @@
-->
<refentry id="systemd-fsck@.service">
<refentryinfo>
<title>systemd-fsck@.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-fsck@.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-fsck@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-fsck@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-fsck@.service</refname>
<refname>systemd-fsck-root.service</refname>
<refname>systemd-fsck</refname>
<refpurpose>File system checker logic</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-fsck@.service</refname>
<refname>systemd-fsck-root.service</refname>
<refname>systemd-fsck</refname>
<refpurpose>File system checker logic</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-fsck@.service</filename></para>
<para><filename>systemd-fsck-root.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-fsck</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-fsck@.service</filename></para>
<para><filename>systemd-fsck-root.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-fsck</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-fsck@.service</filename> and
<filename>systemd-fsck-root.service</filename> are
services responsible for file system checks. They are
instantiated for each device that is configured for
file system checking.
<filename>systemd-fsck-root.service</filename> is
responsible for file system checks on the root file
system, but in only if the root filesystem wasn't
checked in the initramfs.
<filename>systemd-fsck@.service</filename> is used for
all other file systems and for the root file system in
the initramfs.</para>
<para><filename>systemd-fsck@.service</filename> and
<filename>systemd-fsck-root.service</filename> are services
responsible for file system checks. They are instantiated for each
device that is configured for file system checking.
<filename>systemd-fsck-root.service</filename> is responsible for
file system checks on the root file system, but in only if the
root filesystem wasn't checked in the initramfs.
<filename>systemd-fsck@.service</filename> is used for all other
file systems and for the root file system in the initramfs.</para>
<para>Those services are started at boot if
<option>passno</option> in
<filename>/etc/fstab</filename> for the file system is
set to a value greater than zero. The file system
check for root is performed before the other file
systems. Other file systems may be checked in
parallel, except when they are one the same rotating
disk.</para>
<para>Those services are started at boot if
<option>passno</option> in <filename>/etc/fstab</filename> for the
file system is set to a value greater than zero. The file system
check for root is performed before the other file systems. Other
file systems may be checked in parallel, except when they are one
the same rotating disk.</para>
<para><filename>systemd-fsck</filename> does not know
any details about specific filesystems, and simply
executes file system checkers specific to each
filesystem type (<filename>/sbin/fsck.*</filename>).
This helper will decide if the filesystem should
actually be checked based on the time since last
check, number of mounts, unclean unmount, etc.</para>
<para><filename>systemd-fsck</filename> does not know any details
about specific filesystems, and simply executes file system
checkers specific to each filesystem type
(<filename>/sbin/fsck.*</filename>). This helper will decide if
the filesystem should actually be checked based on the time since
last check, number of mounts, unclean unmount, etc.</para>
<para><filename>systemd-fsck</filename> will forward
file system checking progress to the console. If a
file system check fails for a service without
<option>nofail</option>, emergency mode is activated,
by isolating to
<filename>emergency.target</filename>.</para>
</refsect1>
<para><filename>systemd-fsck</filename> will forward file system
checking progress to the console. If a file system check fails for
a service without <option>nofail</option>, emergency mode is
activated, by isolating to
<filename>emergency.target</filename>.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para><filename>systemd-fsck</filename> understands
one kernel command line parameter:</para>
<para><filename>systemd-fsck</filename> understands one kernel
command line parameter:</para>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>fsck.mode=</varname></term>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>fsck.mode=</varname></term>
<listitem><para>One of
<literal>auto</literal>,
<literal>force</literal>,
<literal>skip</literal>. Controls the
mode of operation. The default is
<literal>auto</literal>, and ensures
that file system checks are done when
the file system checker deems them
necessary. <literal>force</literal>
unconditionally results in full file
system checks. <literal>skip</literal>
skips any file system
checks.</para></listitem>
</varlistentry>
<listitem><para>One of <literal>auto</literal>,
<literal>force</literal>, <literal>skip</literal>. Controls
the mode of operation. The default is <literal>auto</literal>,
and ensures that file system checks are done when the file
system checker deems them necessary. <literal>force</literal>
unconditionally results in full file system checks.
<literal>skip</literal> skips any file system
checks.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>fsck.repair=</varname></term>
<varlistentry>
<term><varname>fsck.repair=</varname></term>
<listitem><para>One of
<literal>preen</literal>,
<literal>yes</literal>,
<literal>no</literal>. Controls the
mode of operation. The default is <literal>
preen</literal>, and will automatically repair
problems that can be safely fixed. <literal>yes
</literal> will answer yes to all questions by
fsck and <literal>no</literal> will answer no to
all questions.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>One of <literal>preen</literal>,
<literal>yes</literal>, <literal>no</literal>. Controls the
mode of operation. The default is <literal> preen</literal>,
and will automatically repair problems that can be safely
fixed. <literal>yes </literal> will answer yes to all
questions by fsck and <literal>no</literal> will answer no to
all questions. </para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.cramfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.ext4</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.fat</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.hfsplus</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.minix</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.ntfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.xfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-quotacheck.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.cramfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.ext4</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.fat</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.hfsplus</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.minix</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.ntfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fsck.xfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,178 +21,165 @@
-->
<refentry id="systemd-fstab-generator">
<refentryinfo>
<title>systemd-fstab-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-fstab-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-fstab-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-fstab-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-fstab-generator</refname>
<refpurpose>Unit generator for /etc/fstab</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-fstab-generator</refname>
<refpurpose>Unit generator for /etc/fstab</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-fstab-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-fstab-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-fstab-generator</filename> is
a generator that translates
<filename>/etc/fstab</filename> (see
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details) into native systemd units early at boot
and when configuration of the system manager is
reloaded. This will instantiate mount and swap units
as necessary.</para>
<para><filename>systemd-fstab-generator</filename> is a generator
that translates <filename>/etc/fstab</filename> (see
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for details) into native systemd units early at boot and when
configuration of the system manager is reloaded. This will
instantiate mount and swap units as necessary.</para>
<para>The <varname>passno</varname> field is treated
like a simple boolean, and the ordering information is
discarded. However, if the root file system is
checked, it is checked before all the other
file systems.</para>
<para>The <varname>passno</varname> field is treated like a simple
boolean, and the ordering information is discarded. However, if
the root file system is checked, it is checked before all the
other file systems.</para>
<para>See
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about special
<filename>/etc/fstab</filename> mount options this
generator understands.</para>
<para>See
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>
and
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about special <filename>/etc/fstab</filename>
mount options this generator understands.</para>
<para><filename>systemd-fstab-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<para><filename>systemd-fstab-generator</filename> implements the
<ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para><filename>systemd-fstab-generator</filename> understands
the following kernel command line parameters:</para>
<para><filename>systemd-fstab-generator</filename> understands the
following kernel command line parameters:</para>
<variablelist class='kernel-commandline-options'>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>fstab=</varname></term>
<term><varname>rd.fstab=</varname></term>
<varlistentry>
<term><varname>fstab=</varname></term>
<term><varname>rd.fstab=</varname></term>
<listitem><para>Takes a boolean
argument. Defaults to
<literal>yes</literal>. If
<literal>no</literal>, causes the
generator to ignore any mounts or swaps
configured in
<filename>/etc/fstab</filename>. <varname>rd.fstab=</varname>
is honored only by initial RAM disk
(initrd) while
<varname>fstab=</varname> is
honored by both the main system and
the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>root=</varname></term>
<listitem><para>Takes a boolean argument. Defaults to
<literal>yes</literal>. If <literal>no</literal>, causes the
generator to ignore any mounts or swaps configured in
<filename>/etc/fstab</filename>. <varname>rd.fstab=</varname>
is honored only by initial RAM disk (initrd) while
<varname>fstab=</varname> is honored by both the main system
and the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>root=</varname></term>
<listitem><para>Takes the root filesystem to mount
in the initrd.
<varname>root=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>rootfstype=</varname></term>
<listitem><para>Takes the root filesystem to mount in the
initrd. <varname>root=</varname> is honored by the
initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>rootfstype=</varname></term>
<listitem><para>Takes the root filesystem type that
will be passed to the mount command.
<varname>rootfstype=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>rootflags=</varname></term>
<listitem><para>Takes the root filesystem type that will be
passed to the mount command. <varname>rootfstype=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>rootflags=</varname></term>
<listitem><para>Takes the root filesystem mount options
to use. <varname>rootflags=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usr=</varname></term>
<listitem><para>Takes the root filesystem mount options to
use. <varname>rootflags=</varname> is honored by the
initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usr=</varname></term>
<listitem><para>Takes the <filename>/usr</filename>
filesystem to be mounted by the initrd. If
<varname>mount.usrfstype=</varname> or
<varname>mount.usrflags=</varname> is set, then
<varname>mount.usr=</varname> will default to the value set in
<varname>root=</varname>.</para>
<listitem><para>Takes the <filename>/usr</filename> filesystem
to be mounted by the initrd. If
<varname>mount.usrfstype=</varname> or
<varname>mount.usrflags=</varname> is set, then
<varname>mount.usr=</varname> will default to the value set in
<varname>root=</varname>.</para>
<para>Otherwise this parameter defaults to the
<filename>/usr</filename> entry
found in <filename>/etc/fstab</filename> on the root
filesystem.</para>
<para>Otherwise this parameter defaults to the
<filename>/usr</filename> entry found in
<filename>/etc/fstab</filename> on the root filesystem.</para>
<para><varname>mount.usr=</varname> is honored by the initrd.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usrfstype=</varname></term>
<para><varname>mount.usr=</varname> is honored by the initrd.
</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usrfstype=</varname></term>
<listitem><para>Takes the <filename>/usr</filename>
filesystem type that will be passed to the mount
command. If <varname>mount.usr=</varname> or
<varname>mount.usrflags=</varname> is set, then
<varname>mount.usrfstype=</varname> will default to the value set in
<varname>rootfstype=</varname>.</para>
<listitem><para>Takes the <filename>/usr</filename> filesystem
type that will be passed to the mount command. If
<varname>mount.usr=</varname> or
<varname>mount.usrflags=</varname> is set, then
<varname>mount.usrfstype=</varname> will default to the value
set in <varname>rootfstype=</varname>.</para>
<para>Otherwise this value will be read from the
<filename>/usr</filename> entry in
<filename>/etc/fstab</filename> on the root filesystem.</para>
<para>Otherwise this value will be read from the
<filename>/usr</filename> entry in
<filename>/etc/fstab</filename> on the root filesystem.</para>
<para><varname>mount.usrfstype=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usrflags=</varname></term>
<para><varname>mount.usrfstype=</varname> is honored by the
initrd.</para></listitem>
</varlistentry>
<varlistentry>
<term><varname>mount.usrflags=</varname></term>
<listitem><para>Takes the <filename>/usr</filename>
filesystem mount options to use. If
<varname>mount.usr=</varname> or
<varname>mount.usrfstype=</varname> is set, then
<varname>mount.usrflages=</varname> will default to the value set in
<varname>rootflags=</varname>.</para>
<listitem><para>Takes the <filename>/usr</filename> filesystem
mount options to use. If <varname>mount.usr=</varname> or
<varname>mount.usrfstype=</varname> is set, then
<varname>mount.usrflages=</varname> will default to the value
set in <varname>rootflags=</varname>.</para>
<para>Otherwise this value will be read from the
<filename>/usr</filename> entry in
<filename>/etc/fstab</filename> on the root filesystem.</para>
<para>Otherwise this value will be read from the
<filename>/usr</filename> entry in
<filename>/etc/fstab</filename> on the root filesystem.</para>
<para><varname>mount.usrflags=</varname> is
honored by the initrd.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<para><varname>mount.usrflags=</varname> is honored by the
initrd.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,81 +21,77 @@
-->
<refentry id="systemd-getty-generator">
<refentryinfo>
<title>systemd-getty-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-getty-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-getty-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-getty-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-getty-generator</refname>
<refpurpose>Generator for enabling getty instances on
the console</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-getty-generator</refname>
<refpurpose>Generator for enabling getty instances on the
console</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-getty-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-getty-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-getty-generator</filename> is
a generator that automatically instantiates
<filename>serial-getty@.service</filename> on the
kernel console <filename>/dev/console</filename> if
that is not directed to the virtual console
subsystem. It will also instantiate
<filename>serial-getty@.service</filename> instances
for virtualizer consoles, if execution in a
virtualized environment is detected. Finally, it will
instantiate
<filename>container-getty@.service</filename>
instances for additional container pseudo TTYs as
requested by the container manager (see <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/"><filename>Container Interface</filename></ulink>). This
should ensure that the user is shown a login prompt at
the right place, regardless of which environment the
system is started in. For example, it is sufficient to
redirect the kernel console with a kernel command line
argument such as <varname>console=</varname> to get
both kernel messages and a getty prompt on a serial
TTY. See <ulink
url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
for more information on the
<varname>console=</varname> kernel parameter.</para>
<para><filename>systemd-getty-generator</filename> is a generator
that automatically instantiates
<filename>serial-getty@.service</filename> on the kernel console
<filename>/dev/console</filename> if that is not directed to the
virtual console subsystem. It will also instantiate
<filename>serial-getty@.service</filename> instances for
virtualizer consoles, if execution in a virtualized environment is
detected. Finally, it will instantiate
<filename>container-getty@.service</filename> instances for
additional container pseudo TTYs as requested by the container
manager (see <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface/"><filename>Container
Interface</filename></ulink>). This should ensure that the user is
shown a login prompt at the right place, regardless of which
environment the system is started in. For example, it is
sufficient to redirect the kernel console with a kernel command
line argument such as <varname>console=</varname> to get both
kernel messages and a getty prompt on a serial TTY. See <ulink
url="https://www.kernel.org/doc/Documentation/kernel-parameters.txt"><filename>kernel-parameters.txt</filename></ulink>
for more information on the <varname>console=</varname> kernel
parameter.</para>
<para><filename>systemd-getty-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
<para><filename>systemd-getty-generator</filename> implements the
<ulink url="http://www.freedesktop.org/wiki/Software/systemd/Generators">generator
specification</ulink>.</para>
<para>Further information about configuration of
gettys you may find in <ulink
url="http://0pointer.de/blog/projects/serial-console.html">systemd
for Administrators, Part XVI: Gettys on Serial
Consoles (and Elsewhere)</ulink>.</para>
</refsect1>
<para>Further information about configuration of gettys you may
find in
<ulink url="http://0pointer.de/blog/projects/serial-console.html">systemd
for Administrators, Part XVI: Gettys on Serial Consoles (and
Elsewhere)</ulink>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>agetty</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry project='man-pages'><refentrytitle>agetty</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,166 +21,160 @@
-->
<refentry id="systemd-gpt-auto-generator">
<refentryinfo>
<title>systemd-gpt-auto-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-gpt-auto-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-gpt-auto-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-gpt-auto-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-gpt-auto-generator</refname>
<refpurpose>Generator for automatically discovering
and mounting root, <filename>/home</filename> and
<filename>/srv</filename> partitions, as well as
discovering and enabling swap partitions, based on GPT
partition type GUIDs.</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-gpt-auto-generator</refname>
<refpurpose>Generator for automatically discovering
and mounting root, <filename>/home</filename> and
<filename>/srv</filename> partitions, as well as
discovering and enabling swap partitions, based on GPT
partition type GUIDs.</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-gpt-auto-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-gpt-auto-generator</filename>
is a unit generator that automatically discovers root,
<filename>/home</filename>, <filename>/srv</filename>
and swap partitions and creates mount and swap units
for them, based on the partition type GUIDs of
GUID partition tables (GPT). It implements the <ulink
url="http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/">Discoverable
Partitions Specification</ulink>. Note that this
generator has no effect on non-GPT systems, on systems
where the units are explicitly configured (for
example, listed in
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
or where the mount points are non-empty.</para>
<para><filename>systemd-gpt-auto-generator</filename> is a unit
generator that automatically discovers root,
<filename>/home</filename>, <filename>/srv</filename> and swap
partitions and creates mount and swap units for them, based on the
partition type GUIDs of GUID partition tables (GPT). It implements
the
<ulink url="http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/">Discoverable
Partitions Specification</ulink>. Note that this generator has no
effect on non-GPT systems, on systems where the units are
explicitly configured (for example, listed in
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>),
or where the mount points are non-empty.</para>
<para>This generator will only look for root
partitions on the same physical disk the EFI System
Partition (ESP) is located on. It will only look for
the other partitions on the same physical disk the
root file system is located on. These partitions will
not be searched on systems where the root file system is
distributed on multiple disks, for example via btrfs
RAID.</para>
<para>This generator will only look for root partitions on the
same physical disk the EFI System Partition (ESP) is located on.
It will only look for the other partitions on the same physical
disk the root file system is located on. These partitions will not
be searched on systems where the root file system is distributed
on multiple disks, for example via btrfs RAID.</para>
<para><filename>systemd-gpt-auto-generator</filename>
is useful for centralizing file system configuration
in the partition table and making manual configuration
in <filename>/etc/fstab</filename> or suchlike
unnecessary.</para>
<para><filename>systemd-gpt-auto-generator</filename> is useful
for centralizing file system configuration in the partition table
and making manual configuration in <filename>/etc/fstab</filename>
or suchlike unnecessary.</para>
<para>This generator looks for the partitions based on
their partition type GUID. The following partition
type GUIDs are identified:</para>
<para>This generator looks for the partitions based on their
partition type GUID. The following partition type GUIDs are
identified:</para>
<table>
<title>Partition Type GUIDs</title>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="guid" />
<colspec colname="name" />
<colspec colname="explanation" />
<thead>
<row>
<entry>Partition Type GUID</entry>
<entry>Name</entry>
<entry>Explanation</entry>
</row>
</thead>
<tbody>
<row>
<entry>44479540-f297-41b2-9af7-d131d5f0458a</entry>
<entry><filename>Root Partition (x86)</filename></entry>
<entry>On 32-bit x86 systems, the first x86 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>4f68bce3-e8cd-4db1-96e7-fbcaf984b709</entry>
<entry><filename>Root Partition (x86-64)</filename></entry>
<entry>On 64-bit x86 systems, the first x86-64 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>69dad710-2ce4-4e3c-b16c-21a1d49abed3</entry>
<entry><filename>Root Partition (32-bit ARM)</filename></entry>
<entry>On 32-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>b921b045-1df0-41c3-af44-4c6f280d3fae</entry>
<entry><filename>Root Partition (64-bit ARM)</filename></entry>
<entry>On 64-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>933ac7e1-2eb4-4f13-b844-0e14e2aef915</entry>
<entry>Home Partition</entry>
<entry>The first home partition on the disk the root partition is located on is mounted to <filename>/home</filename>.</entry>
</row>
<row>
<entry>3b8f8425-20e0-4f3b-907f-1a25a76f98e8</entry>
<entry>Server Data Partition</entry>
<entry>The first server data partition on the disk the root partition is located on is mounted to <filename>/srv</filename>.</entry>
</row>
<row>
<entry>0657fd6d-a4ab-43c4-84e5-0933c84b4f4f</entry>
<entry>Swap</entry>
<entry>All swap partitions located on the disk the root partition is located on are enabled.</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Partition Type GUIDs</title>
<tgroup cols='3' align='left' colsep='1' rowsep='1'>
<colspec colname="guid" />
<colspec colname="name" />
<colspec colname="explanation" />
<thead>
<row>
<entry>Partition Type GUID</entry>
<entry>Name</entry>
<entry>Explanation</entry>
</row>
</thead>
<tbody>
<row>
<entry>44479540-f297-41b2-9af7-d131d5f0458a</entry>
<entry><filename>Root Partition (x86)</filename></entry>
<entry>On 32-bit x86 systems, the first x86 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>4f68bce3-e8cd-4db1-96e7-fbcaf984b709</entry>
<entry><filename>Root Partition (x86-64)</filename></entry>
<entry>On 64-bit x86 systems, the first x86-64 root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>69dad710-2ce4-4e3c-b16c-21a1d49abed3</entry>
<entry><filename>Root Partition (32-bit ARM)</filename></entry>
<entry>On 32-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>b921b045-1df0-41c3-af44-4c6f280d3fae</entry>
<entry><filename>Root Partition (64-bit ARM)</filename></entry>
<entry>On 64-bit ARM systems, the first ARM root partition on the disk the EFI ESP is located on is mounted to the root directory <filename>/</filename>.</entry>
</row>
<row>
<entry>933ac7e1-2eb4-4f13-b844-0e14e2aef915</entry>
<entry>Home Partition</entry>
<entry>The first home partition on the disk the root partition is located on is mounted to <filename>/home</filename>.</entry>
</row>
<row>
<entry>3b8f8425-20e0-4f3b-907f-1a25a76f98e8</entry>
<entry>Server Data Partition</entry>
<entry>The first server data partition on the disk the root partition is located on is mounted to <filename>/srv</filename>.</entry>
</row>
<row>
<entry>0657fd6d-a4ab-43c4-84e5-0933c84b4f4f</entry>
<entry>Swap</entry>
<entry>All swap partitions located on the disk the root partition is located on are enabled.</entry>
</row>
</tbody>
</tgroup>
</table>
<para>The <filename>/home</filename> and
<filename>/srv</filename> partitions may be encrypted
in LUKS format. In this case a device mapper device is
set up under the names
<filename>/dev/mapper/home</filename> and
<filename>/dev/mapper/srv</filename>. Note that this
might create conflicts if the same partition is listed
in <filename>/etc/crypttab</filename> with a different
device mapper device name.</para>
<para>The <filename>/home</filename> and <filename>/srv</filename>
partitions may be encrypted in LUKS format. In this case a device
mapper device is set up under the names
<filename>/dev/mapper/home</filename> and
<filename>/dev/mapper/srv</filename>. Note that this might create
conflicts if the same partition is listed in
<filename>/etc/crypttab</filename> with a different device mapper
device name.</para>
<para>Also note that
<citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
will mount the EFI System Partition (ESP) to
<filename>/boot</filename> if not otherwise mounted.</para>
<para>Also note that
<citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
will mount the EFI System Partition (ESP) to
<filename>/boot</filename> if not otherwise mounted.</para>
<para>When using this generator in conjunction with
btrfs file systems, make sure to set the correct
default subvolumes on them, using <command>btrfs
subvolume set-default</command>.</para>
<para>When using this generator in conjunction with btrfs file
systems, make sure to set the correct default subvolumes on them,
using <command>btrfs subvolume set-default</command>.</para>
<para><filename>systemd-gpt-auto-generator</filename>
implements the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/Generators">Generator
Specification</ulink>.</para>
</refsect1>
<para><filename>systemd-gpt-auto-generator</filename> implements
the
<ulink url="http://www.freedesktop.org/wiki/Software/systemd/Generators">Generator
Specification</ulink>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-efi-boot-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-cryptsetup@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>cryptsetup</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>btrfs</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,103 +23,96 @@
<refentry id="systemd-halt.service">
<refentryinfo>
<title>systemd-halt.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-halt.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-halt.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-halt.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-halt.service</refname>
<refname>systemd-poweroff.service</refname>
<refname>systemd-reboot.service</refname>
<refname>systemd-kexec.service</refname>
<refname>systemd-shutdown</refname>
<refpurpose>System shutdown logic</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-halt.service</refname>
<refname>systemd-poweroff.service</refname>
<refname>systemd-reboot.service</refname>
<refname>systemd-kexec.service</refname>
<refname>systemd-shutdown</refname>
<refpurpose>System shutdown logic</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-halt.service</filename></para>
<para><filename>systemd-poweroff.service</filename></para>
<para><filename>systemd-reboot.service</filename></para>
<para><filename>systemd-kexec.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-shutdown</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-halt.service</filename></para>
<para><filename>systemd-poweroff.service</filename></para>
<para><filename>systemd-reboot.service</filename></para>
<para><filename>systemd-kexec.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-shutdown</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-halt.service</filename> is a
system service that is pulled in by
<filename>halt.target</filename> and is responsible
for the actual system halt. Similarly,
<filename>systemd-poweroff.service</filename> is
pulled in by <filename>poweroff.target</filename>,
<filename>systemd-reboot.service</filename> by
<filename>reboot.target</filename> and
<filename>systemd-kexec.service</filename> by
<filename>kexec.target</filename> to execute the
respective actions.</para>
<para><filename>systemd-halt.service</filename> is a system
service that is pulled in by <filename>halt.target</filename> and
is responsible for the actual system halt. Similarly,
<filename>systemd-poweroff.service</filename> is pulled in by
<filename>poweroff.target</filename>,
<filename>systemd-reboot.service</filename> by
<filename>reboot.target</filename> and
<filename>systemd-kexec.service</filename> by
<filename>kexec.target</filename> to execute the respective
actions.</para>
<para>When these services are run, they ensure that PID
1 is replaced by the
<filename>/usr/lib/systemd/systemd-shutdown</filename>
tool which is then responsible for the actual
shutdown. Before shutting down, this binary will try to
unmount all remaining file systems, disable all
remaining swap devices, detach all remaining storage
devices and kill all remaining processes.</para>
<para>When these services are run, they ensure that PID 1 is
replaced by the
<filename>/usr/lib/systemd/systemd-shutdown</filename> tool which
is then responsible for the actual shutdown. Before shutting down,
this binary will try to unmount all remaining file systems,
disable all remaining swap devices, detach all remaining storage
devices and kill all remaining processes.</para>
<para>It is necessary to have this code in a separate binary
because otherwise rebooting after an upgrade might be broken 
the running PID 1 could still depend on libraries which are not
available any more, thus keeping the file system busy, which
then cannot be re-mounted read-only.</para>
<para>It is necessary to have this code in a separate binary
because otherwise rebooting after an upgrade might be broken  the
running PID 1 could still depend on libraries which are not
available any more, thus keeping the file system busy, which then
cannot be re-mounted read-only.</para>
<para>Immediately before executing the actual system
halt/poweroff/reboot/kexec
<filename>systemd-shutdown</filename> will run all
executables in
<filename>/usr/lib/systemd/system-shutdown/</filename>
and pass one arguments to them: either
<literal>halt</literal>,
<literal>poweroff</literal>,
<literal>reboot</literal> or
<literal>kexec</literal>, depending on the chosen
action. All executables in this directory are executed
in parallel, and execution of the action is not
continued before all executables finished.</para>
<para>Immediately before executing the actual system
halt/poweroff/reboot/kexec <filename>systemd-shutdown</filename>
will run all executables in
<filename>/usr/lib/systemd/system-shutdown/</filename> and pass
one arguments to them: either <literal>halt</literal>,
<literal>poweroff</literal>, <literal>reboot</literal> or
<literal>kexec</literal>, depending on the chosen action. All
executables in this directory are executed in parallel, and
execution of the action is not continued before all executables
finished.</para>
<para>Note that
<filename>systemd-halt.service</filename> (and the
related units) should never be executed
directly. Instead, trigger system shutdown with a
command such as <literal>systemctl halt</literal> or
suchlike.</para>
</refsect1>
<para>Note that <filename>systemd-halt.service</filename> (and the
related units) should never be executed directly. Instead, trigger
system shutdown with a command such as <literal>systemctl
halt</literal> or suchlike.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>reboot</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-suspend.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,73 +21,73 @@
-->
<refentry id="systemd-hibernate-resume-generator">
<refentryinfo>
<title>systemd-hibernate-resume-generator</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-hibernate-resume-generator</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Ivan</firstname>
<surname>Shapovalov</surname>
<email>intelfx100@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Ivan</firstname>
<surname>Shapovalov</surname>
<email>intelfx100@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-hibernate-resume-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-hibernate-resume-generator</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-hibernate-resume-generator</refname>
<refpurpose>Unit generator for resume= kernel parameter</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-hibernate-resume-generator</refname>
<refpurpose>Unit generator for resume= kernel parameter</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-hibernate-resume-generator</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>/usr/lib/systemd/system-generators/systemd-hibernate-resume-generator</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-hibernate-resume-generator</filename> is
a generator that instantiates
<citerefentry><refentrytitle>systemd-hibernate-resume@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
unit according to the value of <option>resume=</option>
parameter specified on the kernel command line.</para>
</refsect1>
<para><filename>systemd-hibernate-resume-generator</filename> is a
generator that instantiates
<citerefentry><refentrytitle>systemd-hibernate-resume@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
unit according to the value of <option>resume=</option> parameter
specified on the kernel command line.</para>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para><filename>systemd-hibernate-resume-generator</filename> understands
the following kernel command line parameters:</para>
<para><filename>systemd-hibernate-resume-generator</filename>
understands the following kernel command line parameters:</para>
<variablelist class='kernel-commandline-options'>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>resume=</varname></term>
<varlistentry>
<term><varname>resume=</varname></term>
<listitem><para>Takes a path to the resume
device. Both persistent block device paths like
<filename>/dev/disk/by-foo/bar</filename> and
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>-style
specifiers like <literal>FOO=bar</literal>
are supported.</para></listitem>
</varlistentry>
<listitem><para>Takes a path to the resume device. Both
persistent block device paths like
<filename>/dev/disk/by-foo/bar</filename> and
<citerefentry><refentrytitle>fstab</refentrytitle><manvolnum>5</manvolnum></citerefentry>-style
specifiers like <literal>FOO=bar</literal> are
supported.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume@.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>kernel-command-line</refentrytitle><manvolnum>7</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,62 +21,61 @@
-->
<refentry id="systemd-hibernate-resume@.service">
<refentryinfo>
<title>systemd-hibernate-resume@.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-hibernate-resume@.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Ivan</firstname>
<surname>Shapovalov</surname>
<email>intelfx100@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Ivan</firstname>
<surname>Shapovalov</surname>
<email>intelfx100@gmail.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-hibernate-resume@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-hibernate-resume@.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-hibernate-resume@.service</refname>
<refname>systemd-hibernate-resume</refname>
<refpurpose>Resume from hibernation</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-hibernate-resume@.service</refname>
<refname>systemd-hibernate-resume</refname>
<refpurpose>Resume from hibernation</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-hibernate-resume@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-hibernate-resume</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-hibernate-resume@.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-hibernate-resume</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-hibernate-resume@.service</filename>
initiates the resume from hibernation. It is
instantiated with the device to resume from as the
template argument.</para>
<para><filename>systemd-hibernate-resume@.service</filename>
initiates the resume from hibernation. It is instantiated with the
device to resume from as the template argument.</para>
<para><filename>systemd-hibernate-resume</filename> only supports
the in-kernel hibernation implementation, known as
<ulink url="https://www.kernel.org/doc/Documentation/power/swsusp.txt">swsusp</ulink>.
Internally, it works by writing the major:minor of specified
device node to <filename>/sys/power/resume</filename>.</para>
<para><filename>systemd-hibernate-resume</filename> only supports
the in-kernel hibernation implementation, known as
<ulink url="https://www.kernel.org/doc/Documentation/power/swsusp.txt">swsusp</ulink>.
Internally, it works by writing the major:minor of specified
device node to <filename>/sys/power/resume</filename>.</para>
<para>Failing to initiate a resume is not an error condition.
It may mean that there was no resume image (e. g. if the
system has been simply powered off and not hibernated). In
such case, the boot is ordinarily continued.</para>
</refsect1>
<para>Failing to initiate a resume is not an error condition. It
may mean that there was no resume image (e. g. if the system has
been simply powered off and not hibernated). In such case, the
boot is ordinarily continued.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-hibernate-resume-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,65 +23,63 @@
<refentry id="systemd-hostnamed.service" conditional='ENABLE_HOSTNAMED'>
<refentryinfo>
<title>systemd-hostnamed.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-hostnamed.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-hostnamed.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-hostnamed.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-hostnamed.service</refname>
<refname>systemd-hostnamed</refname>
<refpurpose>Host name bus mechanism</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-hostnamed.service</refname>
<refname>systemd-hostnamed</refname>
<refpurpose>Host name bus mechanism</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-hostnamed.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-hostnamed</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-hostnamed.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-hostnamed</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-hostnamed</filename> is a system
service that may be used as a mechanism to change the
system's hostname. <filename>systemd-hostnamed</filename> is
automatically activated on request and terminates
itself when it is unused.</para>
<para><filename>systemd-hostnamed</filename> is a system service
that may be used as a mechanism to change the system's hostname.
<filename>systemd-hostnamed</filename> is automatically activated
on request and terminates itself when it is unused.</para>
<para>The tool
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a command line client to this service.</para>
<para>The tool
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a command line client to this service.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/hostnamed">
developer documentation</ulink> for information about
the APIs <filename>systemd-hostnamed</filename>
provides.</para>
</refsect1>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/hostnamed">
developer documentation</ulink> for information about the APIs
<filename>systemd-hostnamed</filename> provides.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostname</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-info</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>hostnamectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sethostname</refentrytitle><manvolnum>2</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,173 +22,156 @@
-->
<refentry id="systemd-inhibit"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-inhibit</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-inhibit</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-inhibit</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-inhibit</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-inhibit</refname>
<refpurpose>Execute a program with an inhibition lock taken</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-inhibit</refname>
<refpurpose>Execute a program with an inhibition lock taken</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-inhibit <arg choice="opt" rep="repeat">OPTIONS</arg> <arg>COMMAND</arg> <arg choice="opt" rep="repeat">ARGUMENTS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-inhibit <arg choice="opt" rep="repeat">OPTIONS</arg> --list</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-inhibit <arg choice="opt" rep="repeat">OPTIONS</arg> <arg>COMMAND</arg> <arg choice="opt" rep="repeat">ARGUMENTS</arg></command>
</cmdsynopsis>
<cmdsynopsis>
<command>systemd-inhibit <arg choice="opt" rep="repeat">OPTIONS</arg> --list</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-inhibit</command> may be used
to execute a program with a shutdown, sleep or idle
inhibitor lock taken. The lock will be acquired before
the specified command line is executed and released
afterwards.</para>
<para><command>systemd-inhibit</command> may be used to execute a
program with a shutdown, sleep or idle inhibitor lock taken. The
lock will be acquired before the specified command line is
executed and released afterwards.</para>
<para>Inhibitor locks may be used to block or delay
system sleep and shutdown requests from the user, as well
as automatic idle handling of the OS. This is useful
to avoid system suspends while an optical disc is
being recorded, or similar operations that should not
be interrupted.</para>
<para>Inhibitor locks may be used to block or delay system sleep
and shutdown requests from the user, as well as automatic idle
handling of the OS. This is useful to avoid system suspends while
an optical disc is being recorded, or similar operations that
should not be interrupted.</para>
<para>For more information see the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor
Lock Developer Documentation</ulink>.</para>
</refsect1>
<para>For more information see the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor
Lock Developer Documentation</ulink>.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--what=</option></term>
<variablelist>
<varlistentry>
<term><option>--what=</option></term>
<listitem><para>Takes a colon-separated
list of one or more
operations to inhibit:
<literal>shutdown</literal>,
<literal>sleep</literal>,
<literal>idle</literal>,
<literal>handle-power-key</literal>,
<literal>handle-suspend-key</literal>,
<literal>handle-hibernate-key</literal>,
<literal>handle-lid-switch</literal>,
for inhibiting
reboot/power-off/halt/kexec,
suspending/hibernating, the automatic
idle detection, or the low-level
handling of the power/sleep key and
the lid switch, respectively. If omitted,
defaults to
<literal>idle:sleep:shutdown</literal>.</para></listitem>
</varlistentry>
<listitem><para>Takes a colon-separated list of one or more
operations to inhibit:
<literal>shutdown</literal>,
<literal>sleep</literal>,
<literal>idle</literal>,
<literal>handle-power-key</literal>,
<literal>handle-suspend-key</literal>,
<literal>handle-hibernate-key</literal>,
<literal>handle-lid-switch</literal>,
for inhibiting reboot/power-off/halt/kexec,
suspending/hibernating, the automatic idle detection, or the
low-level handling of the power/sleep key and the lid switch,
respectively. If omitted, defaults to
<literal>idle:sleep:shutdown</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--who=</option></term>
<varlistentry>
<term><option>--who=</option></term>
<listitem><para>Takes a short,
human-readable descriptive string for the
program taking the lock. If not passed,
defaults to the command line
string.</para></listitem>
</varlistentry>
<listitem><para>Takes a short, human-readable descriptive
string for the program taking the lock. If not passed,
defaults to the command line string.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--why=</option></term>
<varlistentry>
<term><option>--why=</option></term>
<listitem><para>Takes a short,
human-readable descriptive string for the
reason for taking the lock. Defaults
to "Unknown reason".</para></listitem>
</varlistentry>
<listitem><para>Takes a short, human-readable descriptive
string for the reason for taking the lock. Defaults to
"Unknown reason".</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--mode=</option></term>
<varlistentry>
<term><option>--mode=</option></term>
<listitem><para>Takes either
<literal>block</literal> or
<literal>delay</literal> and describes
how the lock is applied. If
<literal>block</literal> is used (the
default), the lock prohibits any of
the requested operations without time
limit, and only privileged users may
override it. If
<literal>delay</literal> is used, the
lock can only delay the requested
operations for a limited time. If the
time elapses, the lock is ignored and
the operation executed. The time limit
may be specified in
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>. Note
that <literal>delay</literal> is only
available for <literal>sleep</literal>
and
<literal>shutdown</literal>.</para></listitem>
</varlistentry>
<listitem><para>Takes either <literal>block</literal> or
<literal>delay</literal> and describes how the lock is
applied. If <literal>block</literal> is used (the default),
the lock prohibits any of the requested operations without
time limit, and only privileged users may override it. If
<literal>delay</literal> is used, the lock can only delay the
requested operations for a limited time. If the time elapses,
the lock is ignored and the operation executed. The time limit
may be specified in
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
Note that <literal>delay</literal> is only available for
<literal>sleep</literal> and
<literal>shutdown</literal>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--list</option></term>
<varlistentry>
<term><option>--list</option></term>
<listitem><para>Lists all active
inhibition locks instead of acquiring
one.</para></listitem>
</varlistentry>
<listitem><para>Lists all active inhibition locks instead of
acquiring one.</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>Returns the exit status of the executed program.</para>
</refsect1>
<para>Returns the exit status of the executed program.</para>
</refsect1>
<refsect1>
<title>Example</title>
<refsect1>
<title>Example</title>
<programlisting># systemd-inhibit wodim foobar.iso</programlisting>
<programlisting># systemd-inhibit wodim foobar.iso</programlisting>
<para>This burns the ISO image
<filename>foobar.iso</filename> on a CD using
<citerefentry project='man-pages'><refentrytitle>wodim</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
and inhibits system sleeping, shutdown and idle while
doing so.</para>
</refsect1>
<para>This burns the ISO image
<filename>foobar.iso</filename> on a CD using
<citerefentry project='man-pages'><refentrytitle>wodim</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
and inhibits system sleeping, shutdown and idle while
doing so.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,54 +23,54 @@
<refentry id="systemd-initctl.service">
<refentryinfo>
<title>systemd-initctl.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-initctl.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-initctl.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-initctl.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-initctl.service</refname>
<refname>systemd-initctl.socket</refname>
<refname>systemd-initctl</refname>
<refpurpose>/dev/initctl compatibility</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-initctl.service</refname>
<refname>systemd-initctl.socket</refname>
<refname>systemd-initctl</refname>
<refpurpose>/dev/initctl compatibility</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-initctl.service</filename></para>
<para><filename>systemd-initctl.socket</filename></para>
<para><filename>/usr/lib/systemd/systemd-initctl</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-initctl.service</filename></para>
<para><filename>systemd-initctl.socket</filename></para>
<para><filename>/usr/lib/systemd/systemd-initctl</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-initctl</filename> is a system
service that implements compatibility with the
<filename>/dev/initctl</filename> FIFO file system
object, as implemented by the SysV init system. <filename>systemd-initctl</filename> is
automatically activated on request and terminates
itself when it is unused.</para>
</refsect1>
<para><filename>systemd-initctl</filename> is a system service
that implements compatibility with the
<filename>/dev/initctl</filename> FIFO file system object, as
implemented by the SysV init system.
<filename>systemd-initctl</filename> is automatically activated on
request and terminates itself when it is unused.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,253 +23,228 @@
<refentry id="systemd-journald.service">
<refentryinfo>
<title>systemd-journald.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-journald.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-journald.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-journald.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-journald.service</refname>
<refname>systemd-journald.socket</refname>
<refname>systemd-journald-dev-log.socket</refname>
<refname>systemd-journald</refname>
<refpurpose>Journal service</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-journald.service</refname>
<refname>systemd-journald.socket</refname>
<refname>systemd-journald-dev-log.socket</refname>
<refname>systemd-journald</refname>
<refpurpose>Journal service</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-journald.service</filename></para>
<para><filename>systemd-journald.socket</filename></para>
<para><filename>systemd-journald-dev-log.socket</filename></para>
<para><filename>/usr/lib/systemd/systemd-journald</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-journald.service</filename></para>
<para><filename>systemd-journald.socket</filename></para>
<para><filename>systemd-journald-dev-log.socket</filename></para>
<para><filename>/usr/lib/systemd/systemd-journald</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-journald</filename> is a
system service that collects and stores logging data.
It creates and maintains structured, indexed journals
based on logging information that is received from a
variety of sources:</para>
<para><filename>systemd-journald</filename> is a system service
that collects and stores logging data. It creates and maintains
structured, indexed journals based on logging information that is
received from a variety of sources:</para>
<itemizedlist>
<listitem><para>Kernel log messages, via kmsg</para></listitem>
<itemizedlist>
<listitem><para>Kernel log messages, via kmsg</para></listitem>
<listitem><para>Simple system log messages, via the
libc <citerefentry
project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call</para></listitem>
<listitem><para>Simple system log messages, via the libc
<citerefentry project='man-pages'><refentrytitle>syslog</refentrytitle><manvolnum>3</manvolnum></citerefentry>
call</para></listitem>
<listitem><para>Structured system log messages via the
native Journal API, see
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry></para></listitem>
<listitem><para>Structured system log messages via the native
Journal API, see
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry></para></listitem>
<listitem><para>Standard output and
standard error of system
services</para></listitem>
<listitem><para>Standard output and standard error of system
services</para></listitem>
<listitem><para>Audit records, via the audit subsystem</para></listitem>
</itemizedlist>
<listitem><para>Audit records, via the audit
subsystem</para></listitem>
</itemizedlist>
<para>The daemon will implicitly collect numerous
metadata fields for each log messages in a secure and
unfakeable way. See
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information about the collected metadata.
</para>
<para>The daemon will implicitly collect numerous metadata fields
for each log messages in a secure and unfakeable way. See
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for more information about the collected metadata.
</para>
<para>Log data collected by the journal is primarily
text-based but can also include binary data where
necessary. All objects stored in the journal can be up
to 2^64-1 bytes in size.</para>
<para>Log data collected by the journal is primarily text-based
but can also include binary data where necessary. All objects
stored in the journal can be up to 2^64-1 bytes in size.</para>
<para>By default, the journal stores log data in
<filename>/run/log/journal/</filename>. Since
<filename>/run/</filename> is volatile, log data is
lost at reboot. To make the data persistent, it
is sufficient to create
<filename>/var/log/journal/</filename> where
<filename>systemd-journald</filename> will then store
the data.</para>
<para>By default, the journal stores log data in
<filename>/run/log/journal/</filename>. Since
<filename>/run/</filename> is volatile, log data is lost at
reboot. To make the data persistent, it is sufficient to create
<filename>/var/log/journal/</filename> where
<filename>systemd-journald</filename> will then store the
data.</para>
<para><filename>systemd-journald</filename> will
forward all received log messages to the <constant>AF_UNIX</constant>/<constant>SOCK_DGRAM</constant> socket
<filename>/run/systemd/journal/syslog</filename>, if it exists, which
may be used by Unix syslog daemons to process the data
further.</para>
<para><filename>systemd-journald</filename> will forward all
received log messages to the
<constant>AF_UNIX</constant>/<constant>SOCK_DGRAM</constant>
socket <filename>/run/systemd/journal/syslog</filename>, if it
exists, which may be used by Unix syslog daemons to process the
data further.</para>
<para>See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this
service.</para>
</refsect1>
<para>See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this service.</para>
</refsect1>
<refsect1>
<title>Signals</title>
<refsect1>
<title>Signals</title>
<variablelist>
<varlistentry>
<term>SIGUSR1</term>
<variablelist>
<varlistentry>
<term>SIGUSR1</term>
<listitem><para>Request that journal
data from <filename>/run/</filename>
is flushed to
<filename>/var/</filename> in order to
make it persistent (if this is
enabled). This must be used after
<filename>/var/</filename> is mounted,
as otherwise log data from
<filename>/run</filename> is never
flushed to <filename>/var</filename>
regardless of the
configuration.</para></listitem>
</varlistentry>
<listitem><para>Request that journal data from
<filename>/run/</filename> is flushed to
<filename>/var/</filename> in order to make it persistent (if
this is enabled). This must be used after
<filename>/var/</filename> is mounted, as otherwise log data
from <filename>/run</filename> is never flushed to
<filename>/var</filename> regardless of the
configuration.</para></listitem>
</varlistentry>
<varlistentry>
<term>SIGUSR2</term>
<varlistentry>
<term>SIGUSR2</term>
<listitem><para>Request immediate
rotation of the journal
files.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para>Request immediate rotation of the journal
files.</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Kernel Command Line</title>
<refsect1>
<title>Kernel Command Line</title>
<para>A few configuration parameters from
<filename>journald.conf</filename> may be overridden on
the kernel command line:</para>
<para>A few configuration parameters from
<filename>journald.conf</filename> may be overridden on the kernel
command line:</para>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.journald.forward_to_syslog=</varname></term>
<term><varname>systemd.journald.forward_to_kmsg=</varname></term>
<term><varname>systemd.journald.forward_to_console=</varname></term>
<term><varname>systemd.journald.forward_to_wall=</varname></term>
<variablelist class='kernel-commandline-options'>
<varlistentry>
<term><varname>systemd.journald.forward_to_syslog=</varname></term>
<term><varname>systemd.journald.forward_to_kmsg=</varname></term>
<term><varname>systemd.journald.forward_to_console=</varname></term>
<term><varname>systemd.journald.forward_to_wall=</varname></term>
<listitem><para>Enables/disables
forwarding of collected log messages
to syslog, the kernel log buffer, the
system console or wall.
</para>
<listitem><para>Enables/disables forwarding of collected log
messages to syslog, the kernel log buffer, the system console
or wall.
</para>
<para>See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about these settings.</para>
</listitem>
<para>See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about these settings.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>Access Control</title>
<refsect1>
<title>Access Control</title>
<para>Journal files are, by default, owned and readable
by the <literal>systemd-journal</literal> system group
but are not writable. Adding a user to this group thus
enables her/him to read the journal files.</para>
<para>Journal files are, by default, owned and readable by the
<literal>systemd-journal</literal> system group but are not
writable. Adding a user to this group thus enables her/him to read
the journal files.</para>
<para>By default, each logged in user will get her/his
own set of journal files in
<filename>/var/log/journal/</filename>. These files
will not be owned by the user, however, in order to
avoid that the user can write to them
directly. Instead, file system ACLs are used to ensure
the user gets read access only.</para>
<para>By default, each logged in user will get her/his own set of
journal files in <filename>/var/log/journal/</filename>. These
files will not be owned by the user, however, in order to avoid
that the user can write to them directly. Instead, file system
ACLs are used to ensure the user gets read access only.</para>
<para>Additional users and groups may be granted
access to journal files via file system access control
lists (ACL). Distributions and administrators may
choose to grant read access to all members of the
<literal>wheel</literal> and <literal>adm</literal>
system groups with a command such as the
following:</para>
<para>Additional users and groups may be granted access to journal
files via file system access control lists (ACL). Distributions
and administrators may choose to grant read access to all members
of the <literal>wheel</literal> and <literal>adm</literal> system
groups with a command such as the following:</para>
<programlisting># setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/</programlisting>
<programlisting># setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/</programlisting>
<para>Note that this command will update the ACLs both
for existing journal files and for future journal
files created in the
<filename>/var/log/journal/</filename>
directory.</para>
</refsect1>
<para>Note that this command will update the ACLs both for
existing journal files and for future journal files created in the
<filename>/var/log/journal/</filename> directory.</para>
</refsect1>
<refsect1>
<title>Files</title>
<refsect1>
<title>Files</title>
<variablelist>
<varlistentry>
<term><filename>/etc/systemd/journald.conf</filename></term>
<variablelist>
<varlistentry>
<term><filename>/etc/systemd/journald.conf</filename></term>
<listitem><para>Configure
<command>systemd-journald</command>
behaviour. See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
<listitem><para>Configure
<command>systemd-journald</command>
behaviour. See
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
</para></listitem>
</varlistentry>
<varlistentry>
<term><filename>/run/log/journal/<replaceable>machine-id</replaceable>/*.journal</filename></term>
<term><filename>/run/log/journal/<replaceable>machine-id</replaceable>/*.journal~</filename></term>
<term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal</filename></term>
<term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal~</filename></term>
<varlistentry>
<term><filename>/run/log/journal/<replaceable>machine-id</replaceable>/*.journal</filename></term>
<term><filename>/run/log/journal/<replaceable>machine-id</replaceable>/*.journal~</filename></term>
<term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal</filename></term>
<term><filename>/var/log/journal/<replaceable>machine-id</replaceable>/*.journal~</filename></term>
<listitem><para><command>systemd-journald</command>
writes entries to files in
<filename>/run/log/journal/<replaceable>machine-id</replaceable>/</filename>
or
<filename>/var/log/journal/<replaceable>machine-id</replaceable>/</filename>
with the <literal>.journal</literal>
suffix. If the daemon is stopped
uncleanly, or if the files are found
to be corrupted, they are renamed
using the <literal>.journal~</literal>
suffix, and
<command>systemd-journald</command>
starts writing to a new
file. <filename>/run</filename> is
used when
<filename>/var/log/journal</filename>
is not available, or when
<option>Storage=volatile</option> is
set in the
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file.
</para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<listitem><para><command>systemd-journald</command> writes
entries to files in
<filename>/run/log/journal/<replaceable>machine-id</replaceable>/</filename>
or
<filename>/var/log/journal/<replaceable>machine-id</replaceable>/</filename>
with the <literal>.journal</literal> suffix. If the daemon is
stopped uncleanly, or if the files are found to be corrupted,
they are renamed using the <literal>.journal~</literal>
suffix, and <command>systemd-journald</command> starts writing
to a new file. <filename>/run</filename> is used when
<filename>/var/log/journal</filename> is not available, or
when <option>Storage=volatile</option> is set in the
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
configuration file. </para></listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>setfacl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<command>pydoc systemd.journal</command>.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>journald.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd.journal-fields</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-coredump</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>setfacl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_print</refentrytitle><manvolnum>4</manvolnum></citerefentry>,
<command>pydoc systemd.journal</command>.
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,67 +23,65 @@
<refentry id="systemd-localed.service" conditional='ENABLE_LOCALED'>
<refentryinfo>
<title>systemd-localed.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-localed.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-localed.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-localed.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-localed.service</refname>
<refname>systemd-localed</refname>
<refpurpose>Locale bus mechanism</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-localed.service</refname>
<refname>systemd-localed</refname>
<refpurpose>Locale bus mechanism</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-localed.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-localed</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-localed.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-localed</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-localed</filename> is a system
service that may be used as mechanism to change the
system locale settings, as well as the console key
mapping and default X11 key
mapping. <filename>systemd-localed</filename> is
automatically activated on request and terminates
itself when it is unused.</para>
<para><filename>systemd-localed</filename> is a system service
that may be used as mechanism to change the system locale
settings, as well as the console key mapping and default X11 key
mapping. <filename>systemd-localed</filename> is automatically
activated on request and terminates itself when it is
unused.</para>
<para>The tool
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a command line client to this service.</para>
<para>The tool
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a command line client to this service.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/localed">
developer documentation</ulink> for information about
the APIs <filename>systemd-localed</filename>
provides.</para>
</refsect1>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/localed">
developer documentation</ulink> for information about the APIs
<filename>systemd-localed</filename> provides.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>locale.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>vconsole.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>localectl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loadkeys</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -23,109 +23,99 @@
<refentry id="systemd-logind.service" conditional='ENABLE_LOGIND'>
<refentryinfo>
<title>systemd-logind.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-logind.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-logind.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-logind.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-logind.service</refname>
<refname>systemd-logind</refname>
<refpurpose>Login manager</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-logind.service</refname>
<refname>systemd-logind</refname>
<refpurpose>Login manager</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-logind.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-logind</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-logind.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-logind</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-logind</command> is a system
service that manages user logins. It is responsible
for:</para>
<para><command>systemd-logind</command> is a system service that
manages user logins. It is responsible for:</para>
<itemizedlist>
<listitem><para>Keeping track of users and
sessions, their processes and their idle
state</para></listitem>
<itemizedlist>
<listitem><para>Keeping track of users and sessions, their
processes and their idle state</para></listitem>
<listitem><para>Providing PolicyKit-based access
for users to operations such as system
shutdown or sleep</para></listitem>
<listitem><para>Providing PolicyKit-based access for users to
operations such as system shutdown or sleep</para></listitem>
<listitem><para>Implementing a shutdown/sleep
inhibition logic for
applications</para></listitem>
<listitem><para>Implementing a shutdown/sleep inhibition logic
for applications</para></listitem>
<listitem><para>Handling of power/sleep
hardware keys</para></listitem>
<listitem><para>Handling of power/sleep hardware
keys</para></listitem>
<listitem><para>Multi-seat
management</para></listitem>
<listitem><para>Multi-seat management</para></listitem>
<listitem><para>Session
switch management</para></listitem>
<listitem><para>Session switch management</para></listitem>
<listitem><para>Device access management for
users</para></listitem>
<listitem><para>Device access management for
users</para></listitem>
<listitem><para>Automatic spawning of text
logins (gettys) on virtual console activation
and user runtime directory
management</para></listitem>
</itemizedlist>
<listitem><para>Automatic spawning of text logins (gettys) on
virtual console activation and user runtime directory
management</para></listitem>
</itemizedlist>
<para>User sessions are registered in logind via the
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
PAM module.</para>
<para>User sessions are registered in logind via the
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
PAM module.</para>
<para>See
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this
service.</para>
<para>See
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for information about the configuration of this service.</para>
<para>See <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
on Linux</ulink> for an introduction into basic
concepts of logind such as users, sessions and seats.</para>
<para>See <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/multiseat">Multi-Seat
on Linux</ulink> for an introduction into basic concepts of logind
such as users, sessions and seats.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/logind">
logind D-Bus API Documentation</ulink> for information about
the APIs <filename>systemd-logind</filename>
provides.</para>
<para>See the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/logind">
logind D-Bus API Documentation</ulink> for information about the
APIs <filename>systemd-logind</filename> provides.</para>
<para>For more information on the inhibition logic see
the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor
Lock Developer Documentation</ulink>.</para>
</refsect1>
<para>For more information on the inhibition logic see the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/inhibit">Inhibitor
Lock Developer Documentation</ulink>.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-user-sessions.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-user-sessions.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>loginctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>logind.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>pam_systemd</refentrytitle><manvolnum>8</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -21,81 +21,80 @@
-->
<refentry id="systemd-machine-id-commit.service">
<refentryinfo>
<title>systemd-machine-id-commit.service</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-machine-id-commit.service</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-machine-id-commit.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-machine-id-commit.service</refentrytitle>
<manvolnum>8</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-machine-id-commit.service</refname>
<refpurpose>Commit transient machine-id to disk</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-machine-id-commit.service</refname>
<refpurpose>Commit transient machine-id to disk</refpurpose>
</refnamediv>
<refsynopsisdiv>
<para><filename>systemd-machine-id-commit.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-machine-id-commit</filename></para>
</refsynopsisdiv>
<refsynopsisdiv>
<para><filename>systemd-machine-id-commit.service</filename></para>
<para><filename>/usr/lib/systemd/systemd-machine-id-commit</filename></para>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><filename>systemd-machine-id-commit.service</filename> is
a service responsible for committing any transient
<filename>/etc/machine-id</filename> file to a writable file
system. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para><filename>systemd-machine-id-commit.service</filename> is a
service responsible for committing any transient
<filename>/etc/machine-id</filename> file to a writable file
system. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para>This service is started shortly after
<filename>local-fs.target</filename> if
<filename>/etc/machine-id</filename> is an independent mount
point (probably a tmpfs one) and /etc is writable.
<command>systemd-machine-id-commit</command> will then
write current machine ID to disk and unmount the transient
<filename>/etc/machine-id</filename> file in a race-free
manner to ensure that file is always valid for other
processes.</para>
<para>This service is started shortly after
<filename>local-fs.target</filename> if
<filename>/etc/machine-id</filename> is an independent mount point
(probably a tmpfs one) and /etc is writable.
<command>systemd-machine-id-commit</command> will then write
current machine ID to disk and unmount the transient
<filename>/etc/machine-id</filename> file in a race-free manner to
ensure that file is always valid for other processes.</para>
<para>Note that the traditional way to initialize the machine
ID in <filename>/etc/machine-id</filename> is to use
<command>systemd-machine-id-setup</command> by system
installer tools. You can also use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not
booted) system images. The main use case for that service is
<filename>/etc/machine-id</filename> being an empty file at
boot and initrd chaining to systemd giving it a read only file
system that will be turned read-write later during the boot
process.</para>
<para>Note that the traditional way to initialize the machine ID
in <filename>/etc/machine-id</filename> is to use
<command>systemd-machine-id-setup</command> by system installer
tools. You can also use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not booted) system
images. The main use case for that service is
<filename>/etc/machine-id</filename> being an empty file at boot
and initrd chaining to systemd giving it a read only file system
that will be turned read-write later during the boot
process.</para>
<para>There is no consequence if that service fails other than
a newer machine-id will be generated during next system boot.
</para>
</refsect1>
<para>There is no consequence if that service fails other than a
newer machine-id will be generated during next system boot.
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,104 +22,102 @@
-->
<refentry id="systemd-machine-id-commit"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-machine-id-commit</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-machine-id-commit</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Didier</firstname>
<surname>Roche</surname>
<email>didrocks@ubuntu.com</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-machine-id-commit</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-machine-id-commit</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-machine-id-commit</refname>
<refpurpose>Commit transient machine ID to /etc/machine-id</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-machine-id-commit</refname>
<refpurpose>Commit transient machine ID to /etc/machine-id</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-machine-id-commit</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-machine-id-commit</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-machine-id-commit</command> may
be used to write on disk any transient machine ID
mounted as a temporary file system in
<filename>/etc/machine-id</filename> at boot time. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para><command>systemd-machine-id-commit</command> may be used to
write on disk any transient machine ID mounted as a temporary file
system in <filename>/etc/machine-id</filename> at boot time. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para>This tool will execute no operation if
<filename>/etc/machine-id</filename> doesn't contain any
valid machine ID, isn't mounted as an independent temporary
file system, of <filename>/etc</filename> is read-only. If
those conditions are met, it will then write current machine ID
to disk and unmount the transient
<filename>/etc/machine-id</filename> file in a race-free
manner to ensure that this file is always valid for other
processes.</para>
<para>This tool will execute no operation if
<filename>/etc/machine-id</filename> doesn't contain any valid
machine ID, isn't mounted as an independent temporary file system,
of <filename>/etc</filename> is read-only. If those conditions are
met, it will then write current machine ID to disk and unmount the
transient <filename>/etc/machine-id</filename> file in a race-free
manner to ensure that this file is always valid for other
processes.</para>
<para>Note that the traditional way to initialize the machine
ID in <filename>/etc/machine-id</filename> is to use
<command>systemd-machine-id-setup</command> by system
installer tools. You can also use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not
booted) system images.</para>
</refsect1>
<para>Note that the traditional way to initialize the machine ID
in <filename>/etc/machine-id</filename> is to use
<command>systemd-machine-id-setup</command> by system installer
tools. You can also use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not booted) system
images.</para>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<replaceable>root</replaceable> path,
including config search paths.
</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<replaceable>root</replaceable> path,
including config search paths.
</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-commit.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-machine-id-setup</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

View File

@ -1,6 +1,6 @@
<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
This file is part of systemd.
@ -22,115 +22,109 @@
-->
<refentry id="systemd-machine-id-setup"
xmlns:xi="http://www.w3.org/2001/XInclude">
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>systemd-machine-id-setup</title>
<productname>systemd</productname>
<refentryinfo>
<title>systemd-machine-id-setup</title>
<productname>systemd</productname>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<authorgroup>
<author>
<contrib>Developer</contrib>
<firstname>Lennart</firstname>
<surname>Poettering</surname>
<email>lennart@poettering.net</email>
</author>
</authorgroup>
</refentryinfo>
<refmeta>
<refentrytitle>systemd-machine-id-setup</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refmeta>
<refentrytitle>systemd-machine-id-setup</refentrytitle>
<manvolnum>1</manvolnum>
</refmeta>
<refnamediv>
<refname>systemd-machine-id-setup</refname>
<refpurpose>Initialize the machine ID in /etc/machine-id</refpurpose>
</refnamediv>
<refnamediv>
<refname>systemd-machine-id-setup</refname>
<refpurpose>Initialize the machine ID in /etc/machine-id</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-machine-id-setup</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsynopsisdiv>
<cmdsynopsis>
<command>systemd-machine-id-setup</command>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<refsect1>
<title>Description</title>
<para><command>systemd-machine-id-setup</command> may
be used by system installer tools to initialize the
machine ID stored in
<filename>/etc/machine-id</filename> at install time
with a randomly generated ID. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para><command>systemd-machine-id-setup</command> may be used by
system installer tools to initialize the machine ID stored in
<filename>/etc/machine-id</filename> at install time with a
randomly generated ID. See
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>
for more information about this file.</para>
<para>This tool will execute no operation if
<filename>/etc/machine-id</filename> is already
initialized.</para>
<para>This tool will execute no operation if
<filename>/etc/machine-id</filename> is already
initialized.</para>
<para>If a valid D-Bus machine ID is already
configured for the system, the D-Bus machine ID is
copied and used to initialize the machine ID in
<filename>/etc/machine-id</filename>.</para>
<para>If a valid D-Bus machine ID is already configured for the
system, the D-Bus machine ID is copied and used to initialize the
machine ID in <filename>/etc/machine-id</filename>.</para>
<para>If run inside a KVM virtual machine and a UUID
is passed via the <option>-uuid</option> option, this
UUID is used to initialize the machine ID instead of a
randomly generated one. The caller must ensure that the
UUID passed is sufficiently unique and is different
for every booted instanced of the VM.</para>
<para>If run inside a KVM virtual machine and a UUID is passed via
the <option>-uuid</option> option, this UUID is used to initialize
the machine ID instead of a randomly generated one. The caller
must ensure that the UUID passed is sufficiently unique and is
different for every booted instanced of the VM.</para>
<para>Similar, if run inside a Linux container
environment and a UUID is set for the container this
is used to initialize the machine ID. For details see
the documentation of the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container
Interface</ulink>.</para>
<para>Similar, if run inside a Linux container environment and a
UUID is set for the container this is used to initialize the
machine ID. For details see the documentation of the <ulink
url="http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface">Container
Interface</ulink>.</para>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not
booted) system images.</para>
<para>Use
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to initialize the machine ID on mounted (but not booted) system
images.</para>
</refsect1>
</refsect1>
<refsect1>
<title>Options</title>
<refsect1>
<title>Options</title>
<para>The following options are understood:</para>
<para>The following options are understood:</para>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path
as an argument. All paths will be
prefixed with the given alternate
<replaceable>root</replaceable> path,
including config search paths.
</para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
<variablelist>
<varlistentry>
<term><option>--root=<replaceable>root</replaceable></option></term>
<listitem><para>Takes a directory path as an argument. All
paths will be prefixed with the given alternate
<replaceable>root</replaceable> path, including config search
paths. </para></listitem>
</varlistentry>
<xi:include href="standard-options.xml" xpointer="help" />
<xi:include href="standard-options.xml" xpointer="version" />
</variablelist>
</refsect1>
</refsect1>
<refsect1>
<title>Exit status</title>
<refsect1>
<title>Exit status</title>
<para>On success, 0 is returned, a non-zero failure
code otherwise.</para>
</refsect1>
<para>On success, 0 is returned, a non-zero failure code
otherwise.</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>dbus-uuidgen</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>machine-id</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
<citerefentry><refentrytitle>dbus-uuidgen</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-firstboot</refentrytitle><manvolnum>1</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>

Some files were not shown because too many files have changed in this diff Show More