chiark / gitweb /
libudev: enumerate - do not try to match against an empty subsystem
[elogind.git] / man / systemd.exec.xml
index 116909597861f8545d4c2a3ed9da844a9c885752..b761832ed6bbdca94debe5df33cdb579d4c0376f 100644 (file)
                                 setting.</para></listitem>
                         </varlistentry>
 
                                 setting.</para></listitem>
                         </varlistentry>
 
-                        <varlistentry>
-                                <term><varname>ControlGroup=</varname></term>
-
-                                <listitem><para>Controls the control
-                                groups the executed processes shall be
-                                made members of. Takes a
-                                space-separated list of cgroup
-                                identifiers. A cgroup identifier is
-                                formatted like
-                                <filename noindex='true'>cpu:/foo/bar</filename>,
-                                where "cpu" indicates the kernel
-                                control group controller used, and
-                                <filename noindex='true'>/foo/bar</filename> is the
-                                control group path. The controller
-                                name and ":" may be omitted in which
-                                case the named systemd control group
-                                hierarchy is implied. Alternatively,
-                                the path and ":" may be omitted, in
-                                which case the default control group
-                                path for this unit is implied.</para>
-
-                                <para>This option may be used to place
-                                executed processes in arbitrary groups
-                                in arbitrary hierarchies -- which may
-                                then be externally configured with
-                                additional execution limits. By
-                                default systemd will place all
-                                executed processes in separate
-                                per-unit control groups (named after
-                                the unit) in the systemd named
-                                hierarchy. This option is primarily
-                                intended to place executed processes
-                                in specific paths in specific kernel
-                                controller hierarchies. It is not
-                                recommended to manipulate the service
-                                control group path in the private
-                                systemd named hierarchy
-                                (i.e. <literal>name=systemd</literal>),
-                                and doing this might result in
-                                undefined behaviour. For details about
-                                control groups see <ulink
-                                url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>.</para>
-
-                                <para>This option may appear more than
-                                once, in which case the list of
-                                control group assignments is
-                                merged. If the same hierarchy gets two
-                                different paths assigned only the
-                                later setting will take effect. If the
-                                empty string is assigned to this
-                                option the list of control group
-                                assignments is reset, all previous
-                                assignments will have no
-                                effect.</para>
-
-                                <para>Note that the list of control
-                                group assignments of a unit is
-                                extended implicitly based on the
-                                settings of
-                                <varname>DefaultControllers=</varname>
-                                of
-                                <citerefentry><refentrytitle>systemd-system.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
-                                but a unit's
-                                <varname>ControlGroup=</varname>
-                                setting for a specific controller
-                                takes precedence.</para></listitem>
-                        </varlistentry>
-
-                        <varlistentry>
-                                <term><varname>ControlGroupModify=</varname></term>
-                                <listitem><para>Takes a boolean
-                                argument. If true, the control groups
-                                created for this unit will be owned by
-                                the user specified with
-                                <varname>User=</varname> (and the
-                                appropriate group), and he/she can create
-                                subgroups as well as add processes to
-                                the group.</para></listitem>
-                        </varlistentry>
-
-                        <varlistentry>
-                                <term><varname>ControlGroupPersistent=</varname></term>
-                                <listitem><para>Takes a boolean
-                                argument. If true, the control groups
-                                created for this unit will be marked
-                                to be persistent, i.e. systemd will
-                                not remove them when stopping the
-                                unit. The default is false, meaning
-                                that the control groups will be
-                                removed when the unit is stopped. For
-                                details about the semantics of this
-                                logic see <ulink
-                                url="http://www.freedesktop.org/wiki/Software/systemd/PaxControlGroups">PaxControlGroups</ulink>.</para></listitem>
-                        </varlistentry>
-
-                        <varlistentry>
-                                <term><varname>ControlGroupAttribute=</varname></term>
-
-                                <listitem><para>Set a specific control
-                                group attribute for executed
-                                processes, and (if needed) add the
-                                executed processes to a cgroup in the
-                                hierarchy of the controller the
-                                attribute belongs to. Takes two
-                                space-separated arguments: the
-                                attribute name (syntax is
-                                <literal>cpu.shares</literal> where
-                                <literal>cpu</literal> refers to a
-                                specific controller and
-                                <literal>shares</literal> to the
-                                attribute name), and the attribute
-                                value. Example:
-                                <literal>ControlGroupAttribute=cpu.shares
-                                512</literal>. If this option is used
-                                for an attribute that belongs to a
-                                kernel controller hierarchy the unit
-                                is not already configured to be added
-                                to (for example via the
-                                <literal>ControlGroup=</literal>
-                                option) then the unit will be added to
-                                the controller and the default unit
-                                cgroup path is implied. Thus, using
-                                <varname>ControlGroupAttribute=</varname>
-                                is in most cases sufficient to make
-                                use of control group enforcements,
-                                explicit
-                                <varname>ControlGroup=</varname> are
-                                only necessary in case the implied
-                                default control group path for a
-                                service is not desirable. For details
-                                about control group attributes see
-                                <ulink
-                                url="https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt">cgroups.txt</ulink>. This
-                                option may appear more than once, in
-                                order to set multiple control group
-                                attributes. If this option is used
-                                multiple times for the same cgroup
-                                attribute only the later setting takes
-                                effect. If the empty string is
-                                assigned to this option the list of
-                                attributes is reset, all previous
-                                cgroup attribute settings have no
-                                effect, including those done with
-                                <varname>CPUShares=</varname>,
-                                <varname>MemoryLimit=</varname>,
-                                <varname>MemorySoftLimit</varname>,
-                                <varname>DeviceAllow=</varname>,
-                                <varname>DeviceDeny=</varname>,
-                                <varname>BlockIOWeight=</varname>,
-                                <varname>BlockIOReadBandwidth=</varname>,
-                                <varname>BlockIOWriteBandwidth=</varname>.
-                                </para></listitem>
-                        </varlistentry>
-
                         <varlistentry>
                                 <term><varname>ReadWriteDirectories=</varname></term>
                                 <term><varname>ReadOnlyDirectories=</varname></term>
                         <varlistentry>
                                 <term><varname>ReadWriteDirectories=</varname></term>
                                 <term><varname>ReadOnlyDirectories=</varname></term>
                                 the empty string is assigned to this
                                 option the specific list is reset, and
                                 all prior assignments have no
                                 the empty string is assigned to this
                                 option the specific list is reset, and
                                 all prior assignments have no
-                                effect.</para></listitem>
+                                effect.</para>
+                                <para>Paths in
+                                <varname>ReadOnlyDirectories=</varname>
+                                and
+                                <varname>InaccessibleDirectories=</varname>
+                                may be prefixed with
+                                <literal>-</literal>, in which case
+                                they will be ignored when they don't
+                                exist.</para></listitem>
                         </varlistentry>
 
                         <varlistentry>
                         </varlistentry>
 
                         <varlistentry>
                           <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.swap</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.kill</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+                          <citerefentry><refentrytitle>systemd.cgroup</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
                           <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                   </para>
         </refsect1>
                           <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry>
                   </para>
         </refsect1>