chiark / gitweb /
core: document that JoinControllers= might be ineffective in initrd uses
[elogind.git] / man / udev.xml
index 8eb583a823cfb40465ad2720227a60159d3d8a61..7ec7a3fed00cd1cef242bbc4c255987fa0e91986 100644 (file)
@@ -6,7 +6,21 @@
 <refentry id="udev">
   <refentryinfo>
     <title>udev</title>
-    <productname>udev</productname>
+    <productname>systemd</productname>
+    <authorgroup>
+      <author>
+        <contrib>Developer</contrib>
+        <firstname>Greg</firstname>
+        <surname>Kroah-Hartmann</surname>
+        <email>greg@kroah.com</email>
+      </author>
+      <author>
+        <contrib>Developer</contrib>
+        <firstname>Kay</firstname>
+        <surname>Sievers</surname>
+        <email>kay@vrfy.org</email>
+      </author>
+    </authorgroup>
   </refentryinfo>
 
   <refmeta>
@@ -27,7 +41,7 @@
     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>
@@ -88,7 +94,7 @@
       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>
 
                 <term><option>static_node=</option></term>
                 <listitem>
                   <para>Apply the permissions specified in this rule to the static device node with
-                  the specified name. Static device nodes might be provided by kernel modules
-                  or copied from <filename>/usr/lib/udev/devices</filename>. These nodes might not have
-                  a corresponding kernel device at the time udevd is started; they can trigger
-                  automatic kernel module loading.</para>
+                  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 systemd-udevd is
+                  started; they can trigger automatic kernel module loading.</para>
                 </listitem>
               </varlistentry>
               <varlistentry>
     </refsect2>
   </refsect1>
 
-  <refsect1><title>Author</title>
-    <para>Written by Greg Kroah-Hartman <email>greg@kroah.com</email> and
-    Kay Sievers <email>kay.sievers@vrfy.org</email>. With much help from
-    Dan Stekloff and many others.</para>
-  </refsect1>
-
   <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>