| <?xml version='1.0'?> <!--*-nxml-*--> |
| <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" |
| "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> |
| |
| <!-- |
| This file is part of systemd. |
| |
| Copyright 2010 Lennart Poettering |
| |
| systemd is free software; you can redistribute it and/or modify it |
| under the terms of the GNU Lesser General Public License as published by |
| the Free Software Foundation; either version 2.1 of the License, or |
| (at your option) any later version. |
| |
| systemd is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public License |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. |
| --> |
| |
| <refentry id="systemd.device"> |
| <refentryinfo> |
| <title>systemd.device</title> |
| <productname>systemd</productname> |
| |
| <authorgroup> |
| <author> |
| <contrib>Developer</contrib> |
| <firstname>Lennart</firstname> |
| <surname>Poettering</surname> |
| <email>lennart@poettering.net</email> |
| </author> |
| </authorgroup> |
| </refentryinfo> |
| |
| <refmeta> |
| <refentrytitle>systemd.device</refentrytitle> |
| <manvolnum>5</manvolnum> |
| </refmeta> |
| |
| <refnamediv> |
| <refname>systemd.device</refname> |
| <refpurpose>Device unit configuration</refpurpose> |
| </refnamediv> |
| |
| <refsynopsisdiv> |
| <para><filename><replaceable>device</replaceable>.device</filename></para> |
| </refsynopsisdiv> |
| |
| <refsect1> |
| <title>Description</title> |
| |
| <para>A unit configuration file whose name ends in |
| <literal>.device</literal> encodes information about a device unit |
| as exposed in the |
| sysfs/<citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> |
| device tree.</para> |
| |
| <para>This unit type has no specific options. See |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> |
| for the common options of all unit configuration files. The common |
| configuration items are configured in the generic |
| <literal>[Unit]</literal> and <literal>[Install]</literal> |
| sections. A separate <literal>[Device]</literal> section does not |
| exist, since no device-specific options may be configured.</para> |
| |
| <para>systemd will dynamically create device units for all kernel |
| devices that are marked with the "systemd" udev tag (by default |
| all block and network devices, and a few others). This may be used |
| to define dependencies between devices and other units. To tag a |
| udev device, use <literal>TAG+="systemd"</literal> in the udev |
| rules file, see |
| <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry> |
| for details.</para> |
| |
| <para>Device units are named after the <filename>/sys</filename> |
| and <filename>/dev</filename> paths they control. Example: the |
| device <filename noindex='true'>/dev/sda5</filename> is exposed in |
| systemd as <filename>dev-sda5.device</filename>. For details about |
| the escaping logic used to convert a file system path to a unit |
| name see |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>.</para> |
| |
| </refsect1> |
| |
| <refsect1> |
| <title>The udev Database</title> |
| |
| <para>The settings of device units may either be configured via |
| unit files, or directly from the udev database (which is |
| recommended). The following udev device properties are understood |
| by systemd:</para> |
| |
| <variablelist class='udev-directives'> |
| <varlistentry> |
| <term><varname>SYSTEMD_WANTS=</varname></term> |
| <term><varname>SYSTEMD_USER_WANTS=</varname></term> |
| <listitem><para>Adds dependencies of type |
| <varname>Wants</varname> from the device unit to all listed |
| units. The first form is used by the system systemd instance, |
| the second by user systemd instances. Those settings may be |
| used to activate arbitrary units when a specific device |
| becomes available.</para> |
| |
| <para>Note that this and the other tags are not taken into |
| account unless the device is tagged with the |
| <literal>systemd</literal> string in the udev database, |
| because otherwise the device is not exposed as a systemd unit |
| (see above).</para> |
| |
| <para>Note that systemd will only act on |
| <varname>Wants</varname> dependencies when a device first |
| becomes active. It will not act on them if they are added to |
| devices that are already active. Use |
| <varname>SYSTEMD_READY=</varname> (see below) to influence on |
| which udev event to trigger the dependencies. |
| </para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>SYSTEMD_ALIAS=</varname></term> |
| <listitem><para>Adds an additional alias name to the device |
| unit. This must be an absolute path that is automatically |
| transformed into a unit name. (See above.)</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>SYSTEMD_READY=</varname></term> |
| <listitem><para>If set to 0, systemd will consider this device |
| unplugged even if it shows up in the udev tree. If this |
| property is unset or set to 1, the device will be considered |
| plugged if it is visible in the udev tree. This property has |
| no influence on the behavior when a device disappears from the |
| udev tree.</para> |
| |
| <para>This option is useful to support devices that initially |
| show up in an uninitialized state in the tree, and for which a |
| <literal>changed</literal> event is generated the moment they |
| are fully set up. Note that <varname>SYSTEMD_WANTS=</varname> |
| (see above) is not acted on as long as |
| <varname>SYSTEMD_READY=0</varname> is set for a |
| device.</para></listitem> |
| </varlistentry> |
| |
| <varlistentry> |
| <term><varname>ID_MODEL_FROM_DATABASE=</varname></term> |
| <term><varname>ID_MODEL=</varname></term> |
| |
| <listitem><para>If set, this property is used as description |
| string for the device unit.</para></listitem> |
| </varlistentry> |
| |
| </variablelist> |
| |
| </refsect1> |
| |
| <refsect1> |
| <title>See Also</title> |
| <para> |
| <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>udev</refentrytitle><manvolnum>7</manvolnum></citerefentry>, |
| <citerefentry><refentrytitle>systemd.directives</refentrytitle><manvolnum>7</manvolnum></citerefentry> |
| </para> |
| </refsect1> |
| |
| </refentry> |