| <?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 <varname>RUN</varname> |
| instructions 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 <varname>RUN</varname> instructions 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> |
| </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> |