<filename>default.target</filename>.</para></listitem>
</varlistentry>
<varlistentry>
- <term><option>--running-as=</option></term>
-
- <listitem><para>Tell systemd to run in
- a particular mode. Argument is one of
- <option>system</option>,
- <option>session</option>. Normally it
- should not be necessary to pass this
- option, as systemd automatically
- detects the mode it is started
- in. This call is hence of little use
- except for
- debugging.</para></listitem>
+ <term><option>--system</option></term>
+ <term><option>--session</option></term>
+
+ <listitem><para>Tell systemd to run a
+ system instance (resp. session
+ instance), even if the process ID is
+ not 1 (resp. is 1), i.e. systemd is
+ not (resp. is) run as init process.
+ Normally it should not be necessary to
+ pass these options, as systemd
+ automatically detects the mode it is
+ started in. These options are hence of
+ little use except for debugging. Note
+ that it is not supported booting and
+ maintaining a full system with systemd
+ running in <option>--system</option>
+ mode, but PID not 1. In practice,
+ passing <option>--system</option> explicitly is
+ only useful in conjunction with
+ <option>--test</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--dump-core</option></term>
<listitem><para>Ask for confirmation when spawning processes. This switch has no effect when run as session instance.</para></listitem>
</varlistentry>
<varlistentry>
- <term><option>--show-status</option></term>
+ <term><option>--show-status=</option></term>
+
+ <listitem><para>Show terse service
+ status information while booting. This
+ switch has no effect when run as
+ session instance. Takes a boolean
+ argument which may be omitted
+ which is interpreted as
+ <option>true</option>.</para></listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>--sysv-console=</option></term>
- <listitem><para>Show terse service status information while booting. This switch has no effect when run as session instance.</para></listitem>
+ <listitem><para>Controls whether
+ output of SysV init scripts will be
+ directed to the console. This switch
+ has no effect when run as session
+ instance. Takes a boolean argument
+ which may be omitted which is
+ interpreted as
+ <option>true</option>.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>--log-target=</option></term>
<para>systemd provides a dependency system between
various entities called "units". Units encapsulate
various objects that are relevant for system boot-up
- and maintainance. The majority of units are configured
+ and maintenance. The majority of units are configured
in unit configuration files, whose syntax and basic
set of options is described in
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
however some are created automatically from other
configuration or dynamically from system state. Units
- may be active (meaning started, bound, plugged in, ...
- depending on the unit type), or inactive (meaning
- stopped, unbound, unplugged, ...), as well is in the
- process of being activated or deactivated,
- i.e. between the two states. The following unit types
- are available:</para>
+ may be 'active' (meaning started, bound, plugged in,
+ ... depending on the unit type, see below), or
+ 'inactive' (meaning stopped, unbound, unplugged, ...),
+ as well as in the process of being activated or
+ deactivated, i.e. between the two states (these states
+ are called 'activating', 'deactivating'). A special
+ 'failed' state is available as well which is very
+ similar to 'inactive' and is entered when the service
+ failed in some way (process returned error code on
+ exit, or crashed, or an operation timed out). If this
+ state is entered the cause will be logged, for later
+ reference. Note that the various unit types may have a
+ number of additional substates, which are mapped to
+ the five generalized unit states described
+ here.</para>
+
+ <para>The following unit types are available:</para>
<orderedlist>
<listitem><para>Service units, which control
systemd units, which later may be restored by
activating the saved snapshot unit. For more
information see
- <citerefentry><refentrytitle>systemd.automount</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
+ <citerefentry><refentrytitle>systemd.snapshot</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
<listitem><para>Timer units are useful for
triggering activation of other units based on
<citerefentry><refentrytitle>systemd.timer</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
<listitem><para>Swap units are very similar to
- mount units and encapsulated memory swap
+ mount units and encapsulate memory swap
partitions or files of the operating
- systemd. They are described in <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
+ system. They are described in <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
<listitem><para>Path units may be used
- activate other services when file system
+ to activate other services when file system
objects change or are modified. See
<citerefentry><refentrytitle>systemd.path</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para></listitem>
<para>Units are named as their configuration
files. Some units have special semantics. A detailed
- list you may find in
+ list is available in
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
+ <para>systemd knows various kinds of dependencies,
+ including positive and negative requirement
+ dependencies (i.e. <varname>Requires=</varname> and
+ <varname>Conflicts=</varname>) as well as ordering
+ dependencies (<varname>After=</varname> and
+ <varname>Before=</varname>). NB: ordering and
+ requirement dependencies are orthogonal. If only a
+ requirement dependency exists between two units
+ (e.g. <filename>foo.service</filename> requires
+ <filename>bar.service</filename>), but no ordering
+ dependency (e.g. <filename>foo.service</filename>
+ after <filename>bar.service</filename>) and both are
+ requested to start, they will be started in
+ parallel. It is a common pattern that both requirement
+ and ordering dependencies are placed between two
+ units. Also note that the majority of dependencies are
+ implicitly created and maintained by systemd. In most
+ cases it should be unnecessary to declare additional
+ dependencies manually, however it is possible to do
+ this.</para>
+
+ <para>Application programs and units (via
+ dependencies) may request state changes of units. In
+ systemd, these requests are encapsulated as 'jobs' and
+ maintained in a job queue. Jobs may succeed or can
+ fail, their execution is ordered based on the ordering
+ dependencies of the units they have been scheduled
+ for.</para>
+
<para>On boot systemd activates the target unit
- <filename>default.target</filename> whose job it is to
+ <filename>default.target</filename> whose job is to
activate on-boot services and other on-boot units by
pulling them in via dependencies. Usually the unit
name is just an alias (symlink) for either
<citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
for details about these target units.</para>
- <para>Processes systemd spawns ared placed in
+ <para>Processes systemd spawns are placed in
individual Linux control groups named after the unit
which they belong to in the private systemd
hierarchy. (see <ulink
track of processes. Control group information is
maintained in the kernel, and is accessible via the
file system hierarchy (beneath
- <filename>/cgroup/systemd/</filename>), or in tools
+ <filename>/sys/fs/cgroup/systemd/</filename>), or in tools
such as
<citerefentry><refentrytitle>ps</refentrytitle><manvolnum>1</manvolnum></citerefentry>
(<command>ps xawf -eo pid,user,cgroup,args</command>
simply read as an alternative (though limited)
configuration file format. The SysV
<filename>/dev/initctl</filename> interface is
- provided, and comaptibility implementations of the
- various SysV client tools available. In addition to
- that various established Unix functionality such as
+ provided, and compatibility implementations of the
+ various SysV client tools are available. In addition to
+ that, various established Unix functionality such as
<filename>/etc/fstab</filename> or the
<filename>utmp</filename> database are
supported.</para>
ideas behind systemd please refer to the <ulink
url="http://0pointer.de/blog/projects/systemd.html">Original
Design Document</ulink>.</para>
+
+ <para>Note that some but not all interfaces provided
+ by systemd are covered by the <ulink
+ url="http://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise">Interface
+ Stability Promise</ulink>.</para>
</refsect1>
<refsect1>
--variable=systemdsystemconfdir</command>
returns the path of the system
configuration directory. Packages
- should alter the content of these directories
- only with the
- <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ should alter the content of these
+ directories only with the
+ <command>enable</command> and
+ <command>disable</command> commands of
+ the
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool.</para></listitem>
</varlistentry>
</variablelist>
unit files in the directory returned
by <command>pkg-config systemd
--variable=systemdsessionunitdir</command>. Global
- configuration is done in the
- directory reported by
- <command>pkg-config systemd
+ configuration is done in the directory
+ reported by <command>pkg-config
+ systemd
--variable=systemdsessionconfdir</command>. The
- <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>
+ <command>enable</command> and
+ <command>disable</command> commands of
+ the
+ <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>
tool can handle both global (i.e. for
all users) and private (for one user)
enabling/disabling of
when figuring out whether a service
shall be enabled. Note that a service
unit with a native unit configuration
- file can be started by activating it
+ file cannot be started by activating it
in the SysV runlevel link
farm.</para></listitem>
</varlistentry>
units.</para></listitem>
</varlistentry>
- <varlistentry>
- <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>
-
- <listitem><para>Controls log output,
- with the same effect as the
- <varname>$SYSTEMD_LOG_TARGET</varname>, <varname>$SYSTEMD_LOG_LEVEL</varname>, <varname>$SYSTEMD_LOG_COLOR</varname>, <varname>$SYSTEMD_LOG_LOCATION</varname>
- environment variables described above.</para></listitem>
- </varlistentry>
-
<varlistentry>
<term><varname>systemd.dump_core=</varname></term>
<listitem><para>Takes a boolean
argument. If <option>true</option>
systemd spawns a shell when it
- crashes. Otherwise no core dump is
- created. Defaults to
+ crashes. Otherwise no shell is
+ spawned. Defaults to
<option>false</option>, for security
reasons, as the shell is not protected
by any password
<literal>-1</literal>.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>systemd.confirm_spawn=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If <option>true</option>
+ asks for confirmation when spawning
+ processes. Defaults to
+ <option>false</option>.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>systemd.show_status=</varname></term>
<option>true</option>.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>systemd.sysv_console=</varname></term>
+
+ <listitem><para>Takes a boolean
+ argument. If <option>true</option>
+ output of SysV init scripts will be
+ directed to the console. Defaults to
+ <option>true</option>, unless
+ <option>quiet</option> is passed as
+ kernel command line option in which
+ case it defaults to
+ <option>false</option>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <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>
+
+ <listitem><para>Controls log output,
+ with the same effect as the
+ <varname>$SYSTEMD_LOG_TARGET</varname>, <varname>$SYSTEMD_LOG_LEVEL</varname>, <varname>$SYSTEMD_LOG_COLOR</varname>, <varname>$SYSTEMD_LOG_LOCATION</varname>
+ environment variables described above.</para></listitem>
+ </varlistentry>
+
</variablelist>
</refsect1>
abstract namespace.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><filename>@/org/freedesktop/systemd1/shutdown</filename></term>
+
+ <listitem><para>Used internally by the
+ <citerefentry><refentrytitle>shutdown</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+ tool to implement delayed
+ shutdowns. This is an AF_UNIX datagram
+ socket in the Linux abstract
+ namespace.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><filename>@/org/freedesktop/systemd1/private</filename></term>
<para>
<citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemadm</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
- <citerefentry><refentrytitle>systemd-install</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>systemd-notify</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-daemon</refentrytitle><manvolnum>7</manvolnum></citerefentry>,