chiark / gitweb /
udevd: improve error message in case exec() fails
[elogind.git] / udev / udevadm.xml
index 5996c013838d65f4facca6ba95f3fb2bdc72da5e..b5fb971f3bdb9dea2b6873df73b87798041c9f22 100644 (file)
 <?xml version='1.0'?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+<?xml-stylesheet type="text/xsl" href="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl"?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
   "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
 
-<article>
-  <section>
+<refentry id="udevadm">
+  <refentryinfo>
     <title>udevadm</title>
-    <refentry>
-      <refentryinfo>
-        <title>udevd</title>
-        <date>November 2007</date>
-        <productname>udev</productname>
-      </refentryinfo>
+    <productname>udev</productname>
+  </refentryinfo>
 
-      <refmeta>
-        <refentrytitle>udevadm</refentrytitle>
-        <manvolnum>8</manvolnum>
-        <refmiscinfo class="version"></refmiscinfo>
-      </refmeta>
+  <refmeta>
+    <refentrytitle>udevadm</refentrytitle>
+    <manvolnum>8</manvolnum>
+    <refmiscinfo class="version"></refmiscinfo>
+  </refmeta>
 
-      <refnamediv>
-        <refname>udevadm</refname><refpurpose>udev management tool</refpurpose>
-      </refnamediv>
+  <refnamediv>
+    <refname>udevadm</refname><refpurpose>udev management tool</refpurpose>
+  </refnamediv>
 
-      <refsynopsisdiv>
-        <cmdsynopsis>
-          <command>udevadm</command>
-            <arg><option>--debug</option></arg>
-            <arg><option>--version</option></arg>
-            <arg><option>--help</option></arg>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm info <replaceable>options</replaceable></command>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm trigger <optional>options</optional></command>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm settle <optional>options</optional></command>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm control <replaceable>command</replaceable></command>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm monitor <optional>options</optional></command>
-        </cmdsynopsis>
-        <cmdsynopsis>
-          <command>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></command>
-        </cmdsynopsis>
-      </refsynopsisdiv>
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>udevadm</command>
+        <arg><option>--debug</option></arg>
+        <arg><option>--version</option></arg>
+        <arg><option>--help</option></arg>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm info <replaceable>options</replaceable></command>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm trigger <optional>options</optional></command>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm settle <optional>options</optional></command>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm control <replaceable>command</replaceable></command>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm monitor <optional>options</optional></command>
+    </cmdsynopsis>
+    <cmdsynopsis>
+      <command>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></command>
+    </cmdsynopsis>
+  </refsynopsisdiv>
 
-      <refsect1><title>DESCRIPTION</title>
-        <para>udevadm expects a command and command specific options.  It
-        controls the runtime behavior of udev, requests kernel events,
-        manages the event queue, and provides simple debugging mechanisms.</para>
-      </refsect1>
+  <refsect1><title>Description</title>
+    <para>udevadm expects a command and command specific options.  It
+    controls the runtime behavior of udev, requests kernel events,
+    manages the event queue, and provides simple debugging mechanisms.</para>
+  </refsect1>
 
-      <refsect1><title>OPTIONS</title>
-        <variablelist>
-          <varlistentry>
-            <term><option>--debug</option></term>
-            <listitem>
-              <para>Print debug messages to stderr.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--version</option></term>
-            <listitem>
-              <para>Print version number.</para>
-            </listitem>
-          </varlistentry>
-          <varlistentry>
-            <term><option>--help</option></term>
-            <listitem>
-              <para>Print help text.</para>
-            </listitem>
-          </varlistentry>
-        </variablelist>
+  <refsect1><title>OPTIONS</title>
+    <variablelist>
+      <varlistentry>
+        <term><option>--debug</option></term>
+        <listitem>
+          <para>Print debug messages to stderr.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--version</option></term>
+        <listitem>
+          <para>Print version number.</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term><option>--help</option></term>
+        <listitem>
+          <para>Print help text.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
 
-        <refsect2><title>udevadm info <replaceable>options</replaceable></title>
-          <para>Queries the udev database for device information
-          stored in the udev database. It can also query the properties
-          of a device from its sysfs representation to help creating udev
-          rules that match this device.</para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--query=<replaceable>type</replaceable></option></term>
-              <listitem>
-                <para>Query the database for specified type of device data. It needs the
-                <option>--path</option> or <option>--name</option> to identify the specified
-                device. Valid queries are:
-                <command>name</command>, <command>symlink</command>, <command>path</command>,
-                <command>env</command>, <command>all</command>.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--path=<replaceable>devpath</replaceable></option></term>
-              <listitem>
-                <para>The devpath of the device to query.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--name=<replaceable>file</replaceable></option></term>
-              <listitem>
-                <para>The name of the device node or a symlink to query</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--root</option></term>
-              <listitem>
-                <para>The udev root directory: <filename>/dev</filename>. If used in conjunction
-                with a <command>name</command> or <command>symlink</command> query, the
-                query returns the absolute path including the root directory.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--attribute-walk</option></term>
-              <listitem>
-                <para>Print all sysfs properties of the specified device that can be used
-                in udev rules to match the specified device. It prints all devices
-                along the chain, up to the root of sysfs that can be used in udev rules.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--device-id-of-file=<replaceable>file</replaceable></option></term>
-              <listitem>
-                <para>Print major/minor numbers of the underlying device, where the file
-                lives on.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--export-db</option></term>
-              <listitem>
-                <para>Export the content of the udev database.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--version</option></term>
-              <listitem>
-                <para>Print version.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--help</option></term>
-              <listitem>
-                <para>Print help text.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
+    <refsect2><title>udevadm info <replaceable>options</replaceable></title>
+      <para>Queries the udev database for device information
+      stored in the udev database. It can also query the properties
+      of a device from its sysfs representation to help creating udev
+      rules that match this device.</para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--query=<replaceable>type</replaceable></option></term>
+          <listitem>
+            <para>Query the database for specified type of device data. It needs the
+            <option>--path</option> or <option>--name</option> to identify the specified
+            device. Valid queries are:
+            <command>name</command>, <command>symlink</command>, <command>path</command>,
+            <command>property</command>, <command>all</command>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--path=<replaceable>devpath</replaceable></option></term>
+          <listitem>
+            <para>The devpath of the device to query.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--name=<replaceable>file</replaceable></option></term>
+          <listitem>
+            <para>The name of the device node or a symlink to query</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--root</option></term>
+          <listitem>
+            <para>The udev root directory: <filename>/dev</filename>. If used in conjunction
+            with a <command>name</command> or <command>symlink</command> query, the
+            query returns the absolute path including the root directory.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--run</option></term>
+          <listitem>
+            <para>The udev runtime directory: <filename>/run/udev</filename>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--attribute-walk</option></term>
+          <listitem>
+            <para>Print all sysfs properties of the specified device that can be used
+            in udev rules to match the specified device. It prints all devices
+            along the chain, up to the root of sysfs that can be used in udev rules.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--export</option></term>
+          <listitem>
+            <para>Print output as key/value pairs. Values are enclosed in single quotes.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--export-prefix=<replaceable>name</replaceable></option></term>
+          <listitem>
+            <para>Add a prefix to the key name of exported values.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--device-id-of-file=<replaceable>file</replaceable></option></term>
+          <listitem>
+            <para>Print major/minor numbers of the underlying device, where the file
+            lives on.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--export-db</option></term>
+          <listitem>
+            <para>Export the content of the udev database.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--cleanup-db</option></term>
+          <listitem>
+            <para>Cleanup the udev database.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--version</option></term>
+          <listitem>
+            <para>Print version.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--help</option></term>
+          <listitem>
+            <para>Print help text.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
 
-        <refsect2><title>udevadm trigger <optional>options</optional></title>
-          <para>Request device events from the kernel. Usually used to replay events at system coldplug time.</para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--verbose</option></term>
-              <listitem>
-                <para>Print the list of devices which will be triggered.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--dry-run</option></term>
-              <listitem>
-                <para>Do not actually trigger the event.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--type=<replaceable>type</replaceable></option></term>
-              <listitem>
-                <para>Trigger a specific type of devices. Valid types are:
-                <command>devices</command>, <command>subsystems</command>, <command>failed</command>.
-                The default value is <command>devices</command>.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--action=<replaceable>action</replaceable></option></term>
-              <listitem>
-                <para>Type of event to be triggered. The default value is <command>add</command>.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--subsystem-match=<replaceable>subsystem</replaceable></option></term>
-              <listitem>
-                <para>Trigger events for devices which belong to a matching subsystem. This option
-                can be specified multiple times and supports shell style pattern matching.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></term>
-              <listitem>
-                <para>Do not trigger events for devices which belong to a matching subsystem. This option
-                can be specified multiple times and supports shell style pattern matching.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--attr-match=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
-              <listitem>
-                <para>Trigger events for devices with a matching sysfs attribute. If a value is specified
-                along with the attribute name, the content of the attribute is matched against the given
-                value using shell style pattern matching. If no value is specified, the existence of the
-                sysfs attribute is checked. This option can be specified multiple times.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--attr-nomatch=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
-              <listitem>
-                <para>Do not trigger events for devices with a matching sysfs attribute. If a value is
-                specified along with the attribute name, the content of the attribute is matched against
-                the given value using shell style pattern matching. If no value is specified, the existence
-                of the sysfs attribute is checked. This option can be specified multiple times.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
+    <refsect2><title>udevadm trigger <optional>options</optional></title>
+      <para>Request device events from the kernel. Primarily used to replay events at system coldplug time.</para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--verbose</option></term>
+          <listitem>
+            <para>Print the list of devices which will be triggered.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--dry-run</option></term>
+          <listitem>
+            <para>Do not actually trigger the event.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--type=<replaceable>type</replaceable></option></term>
+          <listitem>
+            <para>Trigger a specific type of devices. Valid types are:
+            <command>devices</command>, <command>subsystems</command>.
+            The default value is <command>devices</command>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--action=<replaceable>action</replaceable></option></term>
+          <listitem>
+            <para>Type of event to be triggered. The default value is <command>change</command>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--subsystem-match=<replaceable>subsystem</replaceable></option></term>
+          <listitem>
+            <para>Trigger events for devices which belong to a matching subsystem. This option
+            can be specified multiple times and supports shell style pattern matching.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--subsystem-nomatch=<replaceable>subsystem</replaceable></option></term>
+          <listitem>
+            <para>Do not trigger events for devices which belong to a matching subsystem. This option
+            can be specified multiple times and supports shell style pattern matching.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--attr-match=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
+          <listitem>
+            <para>Trigger events for devices with a matching sysfs attribute. If a value is specified
+            along with the attribute name, the content of the attribute is matched against the given
+            value using shell style pattern matching. If no value is specified, the existence of the
+            sysfs attribute is checked. This option can be specified multiple times.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--attr-nomatch=<replaceable>attribute</replaceable>=<replaceable>value</replaceable></option></term>
+          <listitem>
+            <para>Do not trigger events for devices with a matching sysfs attribute. If a value is
+            specified along with the attribute name, the content of the attribute is matched against
+            the given value using shell style pattern matching. If no value is specified, the existence
+            of the sysfs attribute is checked. This option can be specified multiple times.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--property-match=<replaceable>property</replaceable>=<replaceable>value</replaceable></option></term>
+          <listitem>
+            <para>Trigger events for devices with a matching property value. This option can be
+            specified multiple times and supports shell style pattern matching.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--tag-match=<replaceable>property</replaceable></option></term>
+          <listitem>
+            <para>Trigger events for devices with a matching tag. This option can be
+            specified multiple times.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--sysname-match=<replaceable>name</replaceable></option></term>
+          <listitem>
+            <para>Trigger events for devices with a matching sys device name. This option can be
+            specified multiple times and supports shell style pattern matching.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
 
-        <refsect2><title>udevadm settle <optional>options</optional></title>
-          <para>Watches the udev event queue, and exits if all current events are handled.</para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--timeout=<replaceable>seconds</replaceable></option></term>
-              <listitem>
-                <para>Maximum number of seconds to wait for the event queue to become empty.
-                The default value is 180 seconds. A value of 0 will check if the queue is empty
-                and always return immediately.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--seq-start=<replaceable>seqnum</replaceable></option></term>
-              <listitem>
-                <para>Wait only for events after the given sequence number.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--seq-end=<replaceable>seqnum</replaceable></option></term>
-              <listitem>
-                <para>Wait only for events before the given sequence number.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--quiet</option></term>
-              <listitem>
-                <para>Do not print any output, like the remaining queue entries when reaching the timeout.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--help</option></term>
-              <listitem>
-                <para>Print help text.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
+    <refsect2><title>udevadm settle <optional>options</optional></title>
+      <para>Watches the udev event queue, and exits if all current events are handled.</para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--timeout=<replaceable>seconds</replaceable></option></term>
+          <listitem>
+            <para>Maximum number of seconds to wait for the event queue to become empty.
+            The default value is 120 seconds. A value of 0 will check if the queue is empty
+            and always return immediately.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--seq-start=<replaceable>seqnum</replaceable></option></term>
+          <listitem>
+            <para>Wait only for events after the given sequence number.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--seq-end=<replaceable>seqnum</replaceable></option></term>
+          <listitem>
+            <para>Wait only for events before the given sequence number.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--exit-if-exists=<replaceable>file</replaceable></option></term>
+          <listitem>
+            <para>Stop waiting if file exists.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--quiet</option></term>
+          <listitem>
+            <para>Do not print any output, like the remaining queue entries when reaching the timeout.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--help</option></term>
+          <listitem>
+            <para>Print help text.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
 
-        <refsect2><title>udevadm control <replaceable>command</replaceable></title>
-          <para>Modify the internal state of the running udev daemon.</para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--log-priority=<replaceable>value</replaceable></option></term>
-              <listitem>
-                <para>Set the internal log level of udevd. Valid values are the numerical
-                syslog priorities or their textual representations: <option>err</option>,
-                <option>info</option> and <option>debug</option>.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--stop-exec-queue</option></term>
-              <listitem>
-                <para>Signal udevd to stop executing new events. Incoming events
-                will be queued.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--start-exec-queue</option></term>
-              <listitem>
-                <para>Signal udevd to enable the execution of events.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--reload-rules</option></term>
-              <listitem>
-                <para>Signal udevd to reload the rules files.
-                Usually the udev daemon detects changes automatically, this may
-                only be needed on systems without inotify support. Reloading rules
-                does not apply any changes to already existing devices.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--env=<replaceable>KEY</replaceable>=<replaceable>value</replaceable></option></term>
-              <listitem>
-                <para>Set global variable.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--max-childs=</option><replaceable>value</replaceable></term>
-              <listitem>
-                <para>Set the maximum number of events, udevd will handle at the
-                same time.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--help</option></term>
-              <listitem>
-                <para>Print help text.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
+    <refsect2><title>udevadm control <replaceable>command</replaceable></title>
+      <para>Modify the internal state of the running udev daemon.</para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--exit</option></term>
+          <listitem>
+            <para>Signal and wait for udevd to exit.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--log-priority=<replaceable>value</replaceable></option></term>
+          <listitem>
+            <para>Set the internal log level of udevd. Valid values are the numerical
+            syslog priorities or their textual representations: <option>err</option>,
+            <option>info</option> and <option>debug</option>.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--stop-exec-queue</option></term>
+          <listitem>
+            <para>Signal udevd to stop executing new events. Incoming events
+            will be queued.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--start-exec-queue</option></term>
+          <listitem>
+            <para>Signal udevd to enable the execution of events.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--reload-rules</option></term>
+          <listitem>
+            <para>Signal udevd to reload the rules files.
+            The udev daemon detects changes automatically, this option is
+            usually not needed. Reloading rules does not apply any changes
+            to already existing devices.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--property=<replaceable>KEY</replaceable>=<replaceable>value</replaceable></option></term>
+          <listitem>
+            <para>Set a global property for all events.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--children-max=</option><replaceable>value</replaceable></term>
+          <listitem>
+            <para>Set the maximum number of events, udevd will handle at the
+            same time.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--timeout=</option><replaceable>seconds</replaceable></term>
+          <listitem>
+            <para>The maximum number seonds to wait for a reply from udevd.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--help</option></term>
+          <listitem>
+            <para>Print help text.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
 
-        <refsect2><title>udevadm monitor <optional>options</optional></title>
-          <para>Listens to the kernel uevents and events sent out by a udev rule
-          and prints the devpath of the event to the console. It can be used to analyze the
-          event timing, by comparing the timestamps of the kernel uevent and the udev event.
-          </para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--environment</option></term>
-              <listitem>
-                <para>Print the complete environment for all events. Can be used to compare the
-                kernel supplied and the udev added environment values.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--kernel</option></term>
-              <listitem>
-                <para>Print the kernel uevents.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--udev</option></term>
-              <listitem>
-                <para>Print the udev event after the rule processing.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--help</option></term>
-              <listitem>
-                <para>Print help text.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
+    <refsect2><title>udevadm monitor <optional>options</optional></title>
+      <para>Listens to the kernel uevents and events sent out by a udev rule
+      and prints the devpath of the event to the console. It can be used to analyze the
+      event timing, by comparing the timestamps of the kernel uevent and the udev event.
+      </para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--kernel</option></term>
+          <listitem>
+            <para>Print the kernel uevents.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--udev</option></term>
+          <listitem>
+            <para>Print the udev event after the rule processing.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--property</option></term>
+          <listitem>
+            <para>Also print the properties of the event.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--subsystem-match=<replaceable>string[/string]</replaceable></option></term>
+          <listitem>
+            <para>Filter events by subsystem[/devtype]. Only udev events with a matching subsystem value will pass.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--tag-match=<replaceable>string</replaceable></option></term>
+          <listitem>
+            <para>Filter events by property. Only udev events with a given tag attached will pass.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--help</option></term>
+          <listitem>
+            <para>Print help text.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
 
-        <refsect2><title>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></title>
-          <para>Simulate a udev event run for the given device, and print debug output.</para>
-          <variablelist>
-            <varlistentry>
-              <term><option>--action=<replaceable>string</replaceable></option></term>
-              <listitem>
-                <para>The action string.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--subsystem=<replaceable>string</replaceable></option></term>
-              <listitem>
-                <para>The subsystem string.</para>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term><option>--help</option></term>
-              <listitem>
-                <para>Print help text.</para>
-              </listitem>
-            </varlistentry>
-          </variablelist>
-        </refsect2>
-      </refsect1>
+    <refsect2><title>udevadm test <optional>options</optional> <replaceable>devpath</replaceable></title>
+      <para>Simulate a udev event run for the given device, and print debug output.</para>
+      <variablelist>
+        <varlistentry>
+          <term><option>--action=<replaceable>string</replaceable></option></term>
+          <listitem>
+            <para>The action string.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--subsystem=<replaceable>string</replaceable></option></term>
+          <listitem>
+            <para>The subsystem string.</para>
+          </listitem>
+        </varlistentry>
+        <varlistentry>
+          <term><option>--help</option></term>
+          <listitem>
+            <para>Print help text.</para>
+          </listitem>
+        </varlistentry>
+      </variablelist>
+    </refsect2>
+  </refsect1>
 
-      <refsect1><title>AUTHOR</title>
-        <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
-      </refsect1>
+  <refsect1><title>Author</title>
+    <para>Written by Kay Sievers <email>kay.sievers@vrfy.org</email>.</para>
+  </refsect1>
 
-      <refsect1>
-        <title>SEE ALSO</title>
-        <para><citerefentry>
-            <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
-        </citerefentry>
-        <citerefentry>
-            <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
-        </citerefentry></para>
-      </refsect1>
-    </refentry>
-  </section>
-</article>
+  <refsect1>
+    <title>See Also</title>
+    <para><citerefentry>
+        <refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum>
+    </citerefentry>
+    <citerefentry>
+        <refentrytitle>udevd</refentrytitle><manvolnum>8</manvolnum>
+    </citerefentry></para>
+  </refsect1>
+</refentry>