<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->

<refentry id="systemd.target">
  <refentryinfo>
    <title>systemd.target</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd.target</refentrytitle>
    <manvolnum>5</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd.target</refname>
    <refpurpose>Target unit configuration</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename><replaceable>target</replaceable>.target</filename></para>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para>A unit configuration file whose name ends in
    <literal>.target</literal> encodes information about a target unit
    of systemd, which is used for grouping units and as well-known
    synchronization points during start-up.</para>

    <para>This unit type has no specific options. See
    <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>
    for the common options of all unit configuration files. The common
    configuration items are configured in the generic [Unit] and
    [Install] sections. A separate [Target] section does not exist,
    since no target-specific options may be configured.</para>

    <para>Target units do not offer any additional functionality on
    top of the generic functionality provided by units. They exist
    merely to group units via dependencies (useful as boot targets),
    and to establish standardized names for synchronization points
    used in dependencies between units. Among other things, target
    units are a more flexible replacement for SysV runlevels in the
    classic SysV init system. (And for compatibility reasons special
    target units such as <filename>runlevel3.target</filename> exist
    which are used by the SysV runlevel compatibility code in systemd.
    See
    <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>
    for details).</para>
  </refsect1>

  <refsect1>
    <title>Automatic Dependencies</title>

    <refsect2>
      <title>Implicit Dependencies</title>

      <para>There are no implicit dependencies for target units.</para>
    </refsect2>

    <refsect2>
      <title>Default Dependencies</title>

      <para>The following dependencies are added unless
      <varname>DefaultDependencies=no</varname> is set:</para>

      <itemizedlist>
        <listitem><para>Target units will automatically complement all
        configured dependencies of type <varname>Wants=</varname> or
        <varname>Requires=</varname> with dependencies of type
        <varname>After=</varname> unless <varname>DefaultDependencies=no</varname>
        is set in the specified units. Note that <varname>Wants=</varname> or
        <varname>Requires=</varname> must be defined in the target unit itself — if
        you for example define <varname>Wants=</varname>some.target in
        some.service, the automatic ordering will not be added.</para></listitem>

        <listitem><para>Target units automatically gain <varname>Conflicts=</varname>
        and <varname>Before=</varname> dependencies against
        <filename>shutdown.target</filename>.</para></listitem>
      </itemizedlist>
    </refsect2>
  </refsect1>

  <refsect1>
    <title>Example</title>

    <example>
      <title>Simple standalone target</title>

      <programlisting># emergency-net.target

[Unit]
Description=Emergency Mode with Networking
Requires=emergency.target systemd-networkd.service
After=emergency.target systemd-networkd.service
AllowIsolate=yes</programlisting>

      <para>When adding dependencies to other units, it's important to check if they set
      <varname>DefaultDependencies=</varname>. Service units, unless they set
      <varname>DefaultDependencies=no</varname>, automatically get a dependency on
      <filename>sysinit.target</filename>. In this case, both
      <filename>emergency.target</filename> and <filename>systemd-networkd.service</filename>
      have <varname>DefaultDependencies=no</varname>, so they are suitable for use
      in this target, and do not pull in <filename>sysinit.target</filename>.</para>

      <para>You can now switch into this emergency mode by running <varname>systemctl
      isolate emergency-net.target</varname> or by passing the option
      <varname>systemd.unit=emergency-net.target</varname> on the kernel command
      line.</para>

      <para>Other units can have <varname>WantedBy=emergency-net.target</varname> in the
      <varname>[Install]</varname> section. After they are enabled using
      <command>systemctl enable</command>, they will be started before
      <varname>emergency-net.target</varname> is started. It is also possible to add
      arbitrary units as dependencies of <filename>emergency.target</filename> without
      modifying them by using <command>systemctl add-wants</command>.
      </para>
    </example>
  </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.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd.special</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
        <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
      </para>
  </refsect1>

</refentry>
