names provide a way to reliably identify devices based on their properties or
current configuration.</para>
- <para>The udev daemon, <citerefentry><refentrytitle>udevd</refentrytitle>
+ <para>The udev daemon, <citerefentry><refentrytitle>systemd-udevd.service</refentrytitle>
<manvolnum>8</manvolnum></citerefentry>, receives device uevents directly from
the kernel whenever a device is added or removed from the system, or it changes its
state. When udev receives a device event, it matches its configured set of rules
It consists of a set of variables allowing the user to override default udev values.
The following variables can be set:</para>
<variablelist>
- <varlistentry>
- <term><option>udev_root</option></term>
- <listitem>
- <para>Specifies where to place the device nodes in the filesystem.
- The default value is <filename>/dev</filename>.</para>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term><option>udev_log</option></term>
<listitem>
extensions are ignored.</para>
<para>Every line in the rules file contains at least one key-value pair.
- There are two kind of keys: match and assignment.
+ There are two kinds of keys: match and assignment.
If all match keys are matching against its value, the rule gets applied and the
assignment keys get the specified value assigned.</para>
successfully. The device properties are made available to the
executed program in the environment. The program's stdout
is available in the RESULT key.</para>
+ <para>This can only be used for very short-running foreground tasks. For details
+ see <option>RUN</option>.</para>
</listitem>
</varlistentry>
<term><option>NAME</option></term>
<listitem>
<para>The name to use for a network interface. The name of a device node
- can not be changed by udev, only additional symlinks can be created.</para>
+ cannot be changed by udev, only additional symlinks can be created.</para>
</listitem>
</varlistentry>
<term><option>SYMLINK</option></term>
<listitem>
<para>The name of a symlink targeting the node. Every matching rule adds
- this value to the list of symlinks to be created. Multiple symlinks may be
- specified by separating the names by the space character. In case multiple
- devices claim the same name, the link always points to the device with
- the highest link_priority. If the current device goes away, the links are
- re-evaluated and the device with the next highest link_priority becomes the owner of
- the link. If no link_priority is specified, the order of the devices (and
- which one of them owns the link) is undefined. Also, symlink names must
- never conflict with the kernel's default device node names, as that would
- result in unpredictable behavior.
+ this value to the list of symlinks to be created.</para>
+ <para>The set of characters to name a symlink is limited. Allowed
+ characters are [0-9A-Za-z#+-.:=@_/], valid utf8 character sequences,
+ and "\x00" hex encoding. All other characters are replaced by
+ a '_' character.</para>
+ <para>Multiple symlinks may be specified by separating the names by the
+ space character. In case multiple devices claim the same name, the link
+ always points to the device with the highest link_priority. If the current
+ device goes away, the links are re-evaluated and the device with the
+ next highest link_priority becomes the owner of the link. If no
+ link_priority is specified, the order of the devices (and which one of
+ them owns the link) is undefined.</para>
+ <para>Symlink names must never conflict with the kernel's default device
+ node names, as that would result in unpredictable behavior.
</para>
</listitem>
</varlistentry>
/usr/lib/udev, otherwise the absolute path must be specified. The program
name and following arguments are separated by spaces. Single quotes can
be used to specify arguments with spaces.</para>
- <para>This can only be used for very short running tasks. Running an
+ <para>This can only be used for very short-running foreground tasks. Running an
event process for a long period of time may block all further events for
- this or a dependent device. Starting daemons or other long running processes
- is not appropriate for udev.</para>
+ this or a dependent device.</para>
+ <para>Starting daemons or other long running processes is not appropriate
+ for udev; the forked processes, detached or not, will be unconditionally
+ killed after the event handling has finished.</para>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
</variablelist>
+ <para>This can only be used for very short-running foreground tasks. For details
+ see <option>RUN</option>.</para>
</listitem>
</varlistentry>
<listitem>
<para>Apply the permissions specified in this rule to the static device node with
the specified name. Static device node creation can be requested by kernel modules.
- These nodes might not have a corresponding kernel device at the time udevd is
+ These nodes might not have a corresponding kernel device at the time systemd-udevd is
started; they can trigger automatic kernel module loading.</para>
</listitem>
</varlistentry>
<refsect1>
<title>See Also</title>
<para><citerefentry>
- <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
+ <refentrytitle>systemd-udevd.service</refentrytitle><manvolnum>8</manvolnum>
</citerefentry>,
<citerefentry>
<refentrytitle>udevadm</refentrytitle><manvolnum>8</manvolnum>