<?xml version='1.0'?>
<!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-udevd.service"
          xmlns:xi="http://www.w3.org/2001/XInclude">

  <refentryinfo>
    <title>systemd-udevd.service</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>systemd-udevd.service</refentrytitle>
    <manvolnum>8</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>systemd-udevd.service</refname>
    <refname>systemd-udevd-control.socket</refname>
    <refname>systemd-udevd-kernel.socket</refname>
    <refname>systemd-udevd</refname>
    <refpurpose>Device event managing daemon</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <para><filename>systemd-udevd.service</filename></para>
    <para><filename>systemd-udevd-control.socket</filename></para>
    <para><filename>systemd-udevd-kernel.socket</filename></para>

    <cmdsynopsis>
      <command>/usr/lib/systemd/systemd-udevd</command>
      <arg><option>--daemon</option></arg>
      <arg><option>--debug</option></arg>
      <arg><option>--children-max=</option></arg>
      <arg><option>--exec-delay=</option></arg>
      <arg><option>--event-timeout=</option></arg>
      <arg><option>--resolve-names=early|late|never</option></arg>
      <arg><option>--version</option></arg>
      <arg><option>--help</option></arg>
    </cmdsynopsis>

  </refsynopsisdiv>

  <refsect1><title>Description</title>
    <para><command>systemd-udevd</command> listens to kernel uevents.
    For every event, systemd-udevd executes matching instructions
    specified in udev rules. See <citerefentry>
    <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
    </citerefentry>.</para>

    <para>The behavior of the daemon can be configured using
    <citerefentry><refentrytitle>udev.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
    its command line options, environment variables, and on the kernel
    command line, or changed dynamically with <command>udevadm
    control</command>.
    </para>
  </refsect1>

  <refsect1><title>Options</title>
    <variablelist>
      <varlistentry>
        <term><option>-d</option></term>
        <term><option>--daemon</option></term>
        <listitem>
          <para>Detach and run in the background.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-D</option></term>
        <term><option>--debug</option></term>
        <listitem>
          <para>Print debug messages to standard error.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-c</option></term>
        <term><option>--children-max=</option></term>
        <listitem>
          <para>Limit the number of events executed in parallel.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-e</option></term>
        <term><option>--exec-delay=</option></term>
        <listitem>
          <para>Delay the execution of each <varname>RUN{<replaceable>program</replaceable>}</varname>
          parameter by the given number of seconds. This option
          might be useful when debugging system crashes during
          coldplug caused by loading non-working kernel
          modules.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-t</option></term>
        <term><option>--event-timeout=</option></term>
        <listitem>
          <para>Set the number of seconds to wait for events to finish. After
          this time, the event will be terminated. The default is 180 seconds.</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-s</option></term>
        <term><option>--timeout-signal=</option></term>
        <listitem>
          <para>Set the signal which <filename>systemd-udevd</filename> will send to
          forked off processes after reaching event timeout. The setting can be overridden
          at boot time with the kernel command line option
          <varname>udev.timeout_signal=</varname>. Setting to <constant>SIGABRT</constant>
          may be helpful in order to debug worker timeouts. Defaults to
          <constant>SIGKILL</constant>. Note that setting the option on the command line
          overrides the setting from the configuration file.
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><option>-N</option></term>
        <term><option>--resolve-names=</option></term>
        <listitem>
          <para>Specify when systemd-udevd should resolve names of users and groups.
          When set to <option>early</option> (the default), names will be
          resolved when the rules are parsed.  When set to
          <option>late</option>, names will be resolved for every event.
          When set to <option>never</option>, names will never be resolved
          and all devices will be owned by root.</para>
        </listitem>
      </varlistentry>

      <xi:include href="standard-options.xml" xpointer="help" />
      <xi:include href="standard-options.xml" xpointer="version" />
    </variablelist>
  </refsect1>

  <refsect1><title>Kernel command line</title>
    <variablelist class='kernel-commandline-options'>
      <para>Parameters prefixed with "rd." will be read when <command>systemd-udevd</command> is used in an
      initrd, those without will be processed both in the initrd and on the host.</para>
      <varlistentry>
        <term><varname>udev.log_level=</varname></term>
        <term><varname>rd.udev.log_level=</varname></term>
        <listitem>
          <para>Set the log level.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>udev.children_max=</varname></term>
        <term><varname>rd.udev.children_max=</varname></term>
        <listitem>
          <para>Limit the number of events executed in parallel.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>udev.exec_delay=</varname></term>
        <term><varname>rd.udev.exec_delay=</varname></term>
        <listitem>
          <para>Delay the execution of each <varname>RUN{<replaceable>program</replaceable>}</varname> parameter by the given
          number of seconds. This option might be useful when
          debugging system crashes during coldplug caused by loading
          non-working kernel modules.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>udev.event_timeout=</varname></term>
        <term><varname>rd.udev.event_timeout=</varname></term>
        <listitem>
          <para>Wait for events to finish up to the given number
          of seconds. This option might be useful if events are
          terminated due to kernel drivers taking too long to initialize.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>udev.timeout_signal=</varname></term>
        <term><varname>rd.udev.timeout_signal=</varname></term>
        <listitem>
          <para>Specifies a signal that <filename>systemd-udevd</filename> will send to
          workers on timeout. Note that kernel command line option overrides both the
          setting in the configuration file and the one on the program command line.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>udev.blockdev_read_only</varname></term>
        <term><varname>rd.udev.blockdev_read_only</varname></term>
        <listitem>
          <para>If specified, mark all physical block devices read-only as they appear. Synthetic block
          devices (such as loopback block devices or device mapper devices) are left as they are. This is
          useful to guarantee that the contents of physical block devices remains unmodified during runtime,
          for example to implement fully stateless systems, for testing or for recovery situations where
          corrupted file systems shall not be corrupted further through accidental modification.</para>

          <para>A block device may be marked writable again by issuing the <command>blockdev
          --setrw</command> command, see <citerefentry
          project='man-pages'><refentrytitle>blockdev</refentrytitle><manvolnum>8</manvolnum></citerefentry>
          for details.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>net.ifnames=</varname></term>
        <listitem>
          <para>Network interfaces are renamed to give them predictable names
          when possible. It is enabled by default; specifying 0 disables it.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>net.naming-scheme=</varname></term>
        <listitem>
          <para>Network interfaces are renamed to give them predictable names when possible (unless
          <varname>net.ifnames=0</varname> is specified, see above). With this kernel command line option it
          is possible to pick a specific version of this algorithm and override the default chosen at
          compilation time. Expects one of the naming scheme identifiers listed in
          <citerefentry><refentrytitle>systemd.net-naming-scheme</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
          or <literal>latest</literal> to select the latest scheme known (to this particular version of
          <filename>systemd-udevd.service</filename>).</para>

          <para>Note that selecting a specific scheme is not sufficient to fully stabilize interface naming:
          the naming is generally derived from driver attributes exposed by the kernel. As the kernel is
          updated, previously missing attributes <filename>systemd-udevd.service</filename> is checking might
          appear, which affects older name derivation algorithms, too.</para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><varname>net.ifname-policy=<replaceable>policy1</replaceable>[,<replaceable>policy2</replaceable>,…][,<replaceable>MAC</replaceable>]</varname></term>
        <listitem>
          <para>Specifies naming policies applied when renaming network interfaces. Takes a list of
          policies and an optional MAC address separated with comma. Each policy value must be one of
          the policies understood by the <varname>NamePolicy=</varname> setting in .link files, e.g.
          <literal>onboard</literal> or <literal>path</literal>. See
          <citerefentry><refentrytitle>systemd.link</refentrytitle><manvolnum>5</manvolnum></citerefentry>
          for more details. When the MAC address is specified, the policies are applied to the
          interface which has the address. When no MAC address is specified, the policies are applied
          to all interfaces. This kernel command line argument can be specified multiple times.</para>

          <para>This argument is not directly read by <command>systemd-udevd</command>, but is instead
          converted to a .link file by
          <citerefentry><refentrytitle>systemd-network-generator.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.
          For this argument to take effect, <filename>systemd-network-generator.service</filename> must be
          enabled.</para>

          <para>Example:
          <programlisting>net.ifname-policy=keep,kernel,path,slot,onboard,01:23:45:67:89:ab
net.ifname-policy=keep,kernel,path,slot,onboard,mac</programlisting>
          This is mostly equivalent to creating the following .link files:
          <programlisting># 91-name-policy-with-mac.link
[Match]
MACAddress=01:23:45:67:89:ab

[Link]
NamePolicy=keep kernel path slot onboard
AlternativeNamePolicy=path slot onboard</programlisting>
          and
          <programlisting># 92-name-policy-for-all.link
[Match]
OriginalName=*

[Link]
NamePolicy=keep kernel path slot onboard mac
AlternativeNamePolicy=path slot onboard mac</programlisting>
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
    <!-- when adding entries here, consider also adding them in kernel-command-line.xml -->
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para>
      <citerefentry><refentrytitle>udev.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum></citerefentry>
    </para>
  </refsect1>
</refentry>
