<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-systemd" role="wrap" revision="systemd">
  <?dbhtml filename="systemd.html"?>

  <sect1info condition="script">
    <productname>systemd</productname>
    <productnumber>&systemd-version;</productnumber>
    <address>&systemd-url;</address>
  </sect1info>

  <title>Systemd-&systemd-version;</title>

  <indexterm zone="ch-system-systemd">
    <primary sortas="a-systemd">systemd</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

	<para>Systemd 软件包包含控制系统引导、运行和关闭的程序。</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&systemd-ch6-sbu;</seg>
        <seg>&systemd-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>
  </sect2>

  <sect2 role="installation">
    <title>安装 systemd</title>

    <para>创建一个符号链接，绕过不存在的 xsltproc：</para>

<screen><userinput remap="pre">ln -sf /tools/bin/true /usr/bin/xsltproc</userinput></screen>

    <para>设定好 man 页面：</para>

<screen><userinput remap="pre">tar -xf ../systemd-man-pages-&systemd-version;.tar.xz</userinput></screen>

    <para>删除在 chroot 环境中无法构建的测试：</para>

<screen><userinput remap="pre">sed '171,$ d' -i src/resolve/meson.build</userinput></screen>

<!-- These are from upstream.  There will probably be a new release shortly, 
     so don't bother with a patch. -->
    <para>进行一些由上游提供的修复：</para>

<screen><userinput remap="pre">sed -i '527,565 d'                  src/basic/missing.h
sed -i '24 d'                       src/core/load-fragment.c
sed -i '53 a#include &lt;sys/mount.h&gt;' src/shared/bus-unit-util.c</userinput></screen>

    <para>从默认的 udev 规则中删除不必要的组
    <systemitem class="groupname">render</systemitem>：</para>

<screen><userinput remap="pre">sed -i 's/GROUP="render", //' rules/50-udev-default.rules.in</userinput></screen>
    <para>准备安装 systemd：</para>

    <screen><userinput remap="configure">mkdir -p build
cd       build

LANG=en_US.UTF-8                   \
meson --prefix=/usr                \
      --sysconfdir=/etc            \
      --localstatedir=/var         \
      -Dblkid=true                 \
      -Dbuildtype=release          \
      -Ddefault-dnssec=no          \
      -Dfirstboot=false            \
      -Dinstall-tests=false        \
      -Dkill-path=/bin/kill        \
      -Dkmod-path=/bin/kmod        \
      -Dldconfig=false             \
      -Dmount-path=/bin/mount      \
      -Drootprefix=                \
      -Drootlibdir=/lib            \
      -Dsplit-usr=true             \
      -Dsulogin-path=/sbin/sulogin \
      -Dsysusers=false             \
      -Dumount-path=/bin/umount    \
      -Db_lto=false                \
      ..</userinput></screen>

    <variablelist>
      <title>meson 选项的含义：</title>

      <varlistentry>
        <term><parameter>-D*-path=*</parameter></term>
        <listitem>
          <para>这些开关提供了 systemd 在运行时需要的二进制程序的位置，
          	  这些程序有些尚未安装，有些的 pkgconfig 文件还在
          <filename>/tools/lib/pkgconfig</filename> 目录中。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Ddefault-dnssec=no</parameter></term>
        <listitem>
          <para>这个开关禁用实验性的 DNSSEC 支持。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Dfirstboot=false</parameter></term>
        <listitem>
          <para>这个开关防止 systemd 安装用于初始化设定系统的服务。
          在 LFS 中所有工作都会手工完成，因此不需要它们。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Dinstall-tests=false</parameter></term>
        <listitem>
          <para>这个开关防止 systemd 安装编译好的测试文件。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Dldconfig=false</parameter></term>
        <listitem>
          <para>这个开关防止一个 systemd 单元的安装，它在引导时运行
			  <command>ldconfig</command>，
			  这对于 LFS 等源代码发行版来说没有意义，还会增加引导时间。
			  如果您需要这个功能，可以删除这个开关。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Droot*</parameter></term>
        <listitem>
          <para>这个开关保证核心程序和共享库被安装到 root 分区下的子目录中。
          </para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Dsplit-usr=true</parameter></term>
        <listitem>
          <para>这个开关确保 systemd 能够在 /bin、/lib 和 /sbin
			  目录不是指向 /usr 中对应目录的符号链接的情况下工作。</para>
        </listitem>
      </varlistentry>

      <varlistentry>
        <term><parameter>-Dsysusers=false</parameter></term>
        <listitem>
          <para>这个开关防止 systemd 安装负责设定
          <filename>/etc/group</filename> 和
          <filename>/etc/passwd</filename> 文件的服务。
          我们在上一章已经创建了这两个文件。</para>
        </listitem>
      </varlistentry>

    </variablelist>

    <para>编译该软件包：</para>

<screen><userinput remap="make">LANG=en_US.UTF-8 ninja</userinput></screen>
<!--
    <para>To test the package, execute the following command:</para>

<screen><userinput remap="test">LANG=en_US.UTF-8 ninja test</userinput></screen>
-->
    <para>安装该软件包：</para>

<screen><userinput remap="install">LANG=en_US.UTF-8 ninja install</userinput></screen>

    <para>删除一个不需要的目录：</para>

<screen><userinput remap="install">rm -rfv /usr/lib/rpm</userinput></screen>

<!--
    <para>创建 Sysvinit 兼容性符号链接，使 systemd 被用作默认 init 系统：
    </para>

<screen><userinput remap="install">for tool in runlevel reboot shutdown poweroff halt telinit; do
     ln -sfv ../bin/systemctl /sbin/${tool}
done
ln -sfv ../lib/systemd/systemd /sbin/init</userinput></screen>
-->

    <para>删除之前创建的 xsltproc 符号链接：</para>

<screen><userinput remap="install">rm -f /usr/bin/xsltproc</userinput></screen>

    <para>创建 <command>systemd-journald</command> 需要的
    <filename>/etc/machine-id</filename> 文件：</para>

<screen><userinput remap="adjust">systemd-machine-id-setup</userinput></screen>

    <para>创建 <filename>/lib/systemd/systemd-user-sessions</filename>
		脚本，使得非特权用户在没有 systemd-logind 的情况下也能登录：</para>

<screen><userinput remap="adjust">cat &gt; /lib/systemd/systemd-user-sessions &lt;&lt; "EOF"
#!/bin/bash
rm -f /run/nologin
EOF
chmod 755 /lib/systemd/systemd-user-sessions</userinput></screen>

  </sect2>

  <sect2 id="contents-systemd" role="content">
    <title>systemd 的内容</title>

    <segmentedlist>
      <segtitle>安装的程序</segtitle>
      <segtitle>安装的库</segtitle>
      <segtitle>安装的目录</segtitle>

      <seglistitem>
        <seg>bootctl, busctl, coredumpctl, halt, hostnamectl, init, journalctl,
        kernel-install, localectl, loginctl, machinectl, networkctl, poweroff,
        reboot, runlevel, shutdown, systemctl, systemd-analyze,
        systemd-ask-password, systemd-cat, systemd-cgls, systemd-cgtop,
        systemd-delta, systemd-detect-virt, systemd-escape, systemd-hwdb,
        systemd-inhibit, systemd-machine-id-setup, systemd-mount, 
        systemd-notify, systemd-nspawn, systemd-path, systemd-resolve, 
        systemd-run, systemd-socket-activate,
        systemd-stdio-bridge, systemd-tmpfiles, systemd-tty-ask-password-agent,
        telinit, timedatectl, 以及 udevadm</seg>
        <seg>libnss_myhostname.so.2, libnss_mymachines.so.2,
        libnss_resolve.so.2, libnss_systemd.so.2, 
        libsystemd.so, libsystemd-shared-231.so,
        以及 libudev.so</seg>
        <seg>/etc/binfmt.d, /etc/init.d, /etc/kernel, /etc/modules-load.d,
        /etc/sysctl.d, /etc/systemd, /etc/tmpfiles.d, /etc/udev,
        /etc/xdg/systemd, /lib/systemd, /lib/udev, /usr/include/systemd,
        /usr/lib/binfmt.d, /usr/lib/kernel, /usr/lib/modules-load.d,
        /usr/lib/sysctl.d, /usr/lib/systemd, /usr/lib/tmpfiles.d,
        /usr/share/doc/systemd-&systemd-version;, /usr/share/factory,
        /usr/share/systemd, /var/lib/systemd, 以及 /var/log/journal</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">简要描述</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="bootctl">
        <term><command>bootctl</command></term>
        <listitem>
          <para>用于查询固件和启动管理器设置</para>
          <indexterm zone="ch-system-systemd bootctl">
            <primary sortas="b-bootctl">bootctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="busctl">
        <term><command>busctl</command></term>
        <listitem>
          <para>用于探查和监视 D-bus 总线</para>
          <indexterm zone="ch-system-systemd busctl">
            <primary sortas="b-busctl">busctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="coredumpctl">
        <term><command>coredumpctl</command></term>
        <listitem>
          <para>用于从 systemd 日志获取核心转储</para>
          <indexterm zone="ch-system-systemd coredumpctl">
            <primary sortas="b-coredumpctl">coredumpctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="halt">
        <term><command>halt</command></term>
        <listitem>
          <para>一般以 <parameter>-h</parameter> 参数调用
			  <command>shutdown</command> 命令，除非在运行级别已经为 0
			  时，则通知内核停止系统；在系统停止运行时它在
			  <filename>/var/log/wtmp</filename> 中进行记录</para>
          <indexterm zone="ch-system-systemd halt">
            <primary sortas="b-halt">halt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="hostnamectl">
        <term><command>hostnamectl</command></term>
        <listitem>
          <para>查询和修改系统机器名</para>
          <indexterm zone="ch-system-systemd hostnamectl">
            <primary sortas="b-hostnamectl">hostnamectl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="init">
        <term><command>init</command></term>
        <listitem>
          <para>在内核初始化硬件后第一个启动的进程，
          它接管引导过程，并根据它的配置文件启动所有进程。</para>
          <indexterm zone="ch-system-systemd init">
            <primary sortas="b-init">init</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="journalctl">
        <term><command>journalctl</command></term>
        <listitem>
          <para>用于查询 systemd 日志的内容</para>
          <indexterm zone="ch-system-systemd journalctl">
            <primary sortas="b-journalctl">journalctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="kernel-install">
        <term><command>kernel-install</command></term>
        <listitem>
          <para>用于在 /boot 中添加或删除内核和 initramfs 映像文件</para>
          <indexterm zone="ch-system-systemd kernel-install">
            <primary sortas="b-kernel-install">kernel-install</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="localectl">
        <term><command>localectl</command></term>
        <listitem>
          <para>用于查询和修改系统 locale 和键盘布局设置</para>
          <indexterm zone="ch-system-systemd localectl">
            <primary sortas="b-localectl">localectl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="loginctl">
        <term><command>loginctl</command></term>
        <listitem>
          <para>用于探查和控制 systemd 登录管理器的状态</para>
          <indexterm zone="ch-system-systemd loginctl">
            <primary sortas="b-loginctl">loginctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="machinectl">
        <term><command>machinectl</command></term>
        <listitem>
          <para>用于探查和控制 systemd 虚拟机和容器注册管理器的状态</para>
          <indexterm zone="ch-system-systemd machinectl">
            <primary sortas="b-machinectl">machinectl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="networkctl">
        <term><command>networkctl</command></term>
        <listitem>
          <para>用于探查 systemd-networkd 管理的网络连接状态</para>
          <indexterm zone="ch-system-systemd networkctl">
            <primary sortas="b-networkctl">networkctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="poweroff">
        <term><command>poweroff</command></term>
        <listitem>
          <para>告诉内核停止系统运行并关闭计算机
          (见 <command>halt</command>)</para>
          <indexterm zone="ch-system-systemd poweroff">
            <primary sortas="b-poweroff">poweroff</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="reboot">
        <term><command>reboot</command></term>
        <listitem>
          <para>告诉内核重启系统 (见
          <command>halt</command>)</para>
          <indexterm zone="ch-system-systemd reboot">
            <primary sortas="b-reboot">reboot</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="runlevel">
        <term><command>runlevel</command></term>
        <listitem>
          <para>报告当前系统运行级别和上一个运行级别，
			  上一个运行级别被记录在 <filename>/var/run/utmp</filename>
			  中</para>
          <indexterm zone="ch-system-systemd runlevel">
            <primary sortas="b-runlevel">runlevel</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="shutdown">
        <term><command>shutdown</command></term>
        <listitem>
           <para>安全地关闭系统，向所有进程发送信号，并通知所有登录用户
           </para>
          <indexterm zone="ch-system-systemd shutdown">
            <primary sortas="b-shutdown">shutdown</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemctl">
        <term><command>systemctl</command></term>
        <listitem>
          <para>用于探查和控制 systemd 系统和服务管理器的状态</para>
          <indexterm zone="ch-system-systemd systemctl">
            <primary sortas="b-systemctl">systemctl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-analyze">
        <term><command>systemd-analyze</command></term>
        <listitem>
          <para>用于分析当前运行系统的引导性能</para>
          <indexterm zone="ch-system-systemd systemd-analyze">
            <primary sortas="b-systemd-analyze">systemd-analyze</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-ask-password">
        <term><command>systemd-ask-password</command></term>
        <listitem>
          <para>用于以命令行指定的消息向用户询问系统密码</para>
          <indexterm zone="ch-system-systemd systemd-ask-password">
            <primary sortas="b-systemd-ask-password">systemd-ask-password</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-cat">
        <term><command>systemd-cat</command></term>
        <listitem>
          <para>用于将进程的标准输出和错误输出重定向到系统日志
          </para>
          <indexterm zone="ch-system-systemd systemd-cat">
            <primary sortas="b-systemd-cat">systemd-cat</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-cgls">
        <term><command>systemd-cgls</command></term>
        <listitem>
          <para>用树的形式递归地显示指定 Linux 控制组 (cgroup)
          层次结构的内容</para>
          <indexterm zone="ch-system-systemd systemd-cgls">
            <primary sortas="b-systemd-cgls">systemd-cgls</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-cgtop">
        <term><command>systemd-cgtop</command></term>
        <listitem>
          <para>显示本地 Linux 控制组层次结构中占用资源最多的，
			  可以按 CPU 、内存和磁盘 I/O 负载排序</para>
          <indexterm zone="ch-system-systemd systemd-cgtop">
            <primary sortas="b-systemd-cgtop">systemd-cgtop</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-delta">
        <term><command>systemd-delta</command></term>
        <listitem>
          <para>用于确定并比较那些覆盖了
			  <filename class="directory">/usr</filename> 中默认值的
			  <filename class="directory">/etc</filename>
			  中的配置文件</para>
          <indexterm zone="ch-system-systemd systemd-delta">
            <primary sortas="b-systemd-delta">systemd-delta</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-detect-virt">
        <term><command>systemd-detect-virt</command></term>
        <listitem>
          <para>检测系统是否在虚拟化环境下运行</para>
          <indexterm zone="ch-system-systemd systemd-detect-virt">
            <primary sortas="b-systemd-detect-virt">systemd-detect-virt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-escape">
        <term><command>systemd-escape</command></term>
        <listitem>
          <para>用于转义字符串，以便将其包含在 systemd 单元名中</para>
          <indexterm zone="ch-system-systemd systemd-escape">
            <primary sortas="b-systemd-escape">systemd-escape</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-hwdb">
        <term><command>systemd-hwdb</command></term>
        <listitem>
          <para>用于管理硬件数据库 (hwdb)</para>
          <indexterm zone="ch-system-systemd systemd-hwdb">
            <primary sortas="b-systemd-hwdb">systemd-hwdb</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-inhibit">
        <term><command>systemd-inhibit</command></term>
        <listitem>
          <para>用于在关机、休眠或待机抑制锁被锁定的情况下运行程序</para>
          <indexterm zone="ch-system-systemd systemd-inhibit">
            <primary sortas="b-systemd-inhibit">systemd-inhibit</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-machine-id-setup">
        <term><command>systemd-machine-id-setup</command></term>
        <listitem>
          <para>被系统安装工具用于在安装时以随机生成的 ID 初始化
          <filename>/etc/machine-id</filename> 中的机器 ID</para>
          <indexterm zone="ch-system-systemd systemd-machine-id-setup">
            <primary sortas="b-systemd-machine-id-setup">systemd-machine-id-setup</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-mount">
        <term><command>systemd-mount</command></term>
        <listitem>
          <para>一个用于临时挂载或自动挂载驱动器的工具</para>
          <indexterm zone="ch-system-systemd systemd-mount">
            <primary sortas="b-systemd-mount">systemd-mount</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-notify">
        <term><command>systemd-notify</command></term>
        <listitem>
          <para>被守护脚本用于通知 init 系统关于状态变化的信息</para>
          <indexterm zone="ch-system-systemd systemd-notify">
            <primary sortas="b-systemd-notify">systemd-notify</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-nspawn">
        <term><command>systemd-nspawn</command></term>
        <listitem>
          <para>用于在轻量级命名空间容器中运行命令或操作系统</para>
          <indexterm zone="ch-system-systemd systemd-nspawn">
            <primary sortas="b-systemd-nspawn">systemd-nspawn</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-path">
        <term><command>systemd-path</command></term>
        <listitem>
          <para>用于查询系统和用户路径</para>
          <indexterm zone="ch-system-systemd systemd-path">
            <primary sortas="b-systemd-path">systemd-path</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-resolve">
        <term><command>systemd-resolve</command></term>
        <listitem>
          <para>用于解析域名、IPv4 和 IPv6 地址、DNS 资源记录
          以及服务</para>
          <indexterm zone="ch-system-systemd systemd-resolve">
            <primary sortas="b-systemd-resolve">systemd-resolve</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-run">
        <term><command>systemd-run</command></term>
        <listitem>
          <para>用于创建一个临时的 .service 或 .scope 单元，
          并在其中运行指定命令</para>
          <indexterm zone="ch-system-systemd systemd-run">
            <primary sortas="b-systemd-run">systemd-run</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <!-- <varlistentry id="systemd-stdio-bridge">
        <term><command>systemd-stdio-bridge</command></term>
        <listitem>
          <para>To be completed</para>
          <indexterm zone="ch-system-systemd systemd-stdio-bridge">
            <primary sortas="b-systemd-stdio-bridge">systemd-stdio-bridge</primary>
          </indexterm>
        </listitem>
      </varlistentry> -->

      <varlistentry id="systemd-socket-activate">
        <term><command>systemd-socket-activate</command></term>
        <listitem>
          <para>用于监听 socket 服务，并在连接时启动进程</para>
          <indexterm zone="ch-system-systemd systemd-socket-activate">
            <primary sortas="b-systemd-socket-activate">systemd-socket-activate</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-tmpfiles">
        <term><command>systemd-tmpfiles</command></term>
        <listitem>
          <para>根据
          <filename class="directory">tmpfiles.d</filename>
		  目录中的配置文件给定的文件格式和位置，
		  创建、修改和清理易失性、临时性文件和目录</para>
          <indexterm zone="ch-system-systemd systemd-tmpfiles">
            <primary sortas="b-systemd-tmpfiles">systemd-tmpfiles</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="systemd-tty-ask-password-agent">
        <term><command>systemd-tty-ask-password-agent</command></term>
        <listitem>
          <para>列出或处理等待中的 systemd 密码请求</para>
          <indexterm zone="ch-system-systemd systemd-tty-ask-password-agent">
            <primary sortas="b-systemd-tty-ask-password-agent">systemd-tty-ask-password-agent</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="telinit">
        <term><command>telinit</command></term>
        <listitem>
          <para>告诉 <command>init</command> 切换到某个运行级别</para>
          <indexterm zone="ch-system-systemd telinit">
            <primary sortas="b-telinit">telinit</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="timedatectl">
        <term><command>timedatectl</command></term>
        <listitem>
          <para>用于查询和修改系统时钟及其设置
          </para>
          <indexterm zone="ch-system-systemd timedatectl">
            <primary sortas="b-timedatectl">timedatectl</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="udevadm">
        <term><command>udevadm</command></term>
        <listitem>
          <para>通用 udev 管理工具：控制 udevd 守护进程，
			  提供 udev 数据库的信息，监视 udev 事件 ，等待 udev 事件结束，
			  测试 udev 配置，或对于给定设备触发 udev 事件</para>
          <indexterm zone="ch-system-systemd udevadm">
            <primary sortas="b-udevadm">udevadm</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libsystemd">
        <term><filename class="libraryfile">libsystemd</filename></term>
        <listitem>
          <para>主要的 systemd 工具库</para>
          <indexterm zone="ch-system-systemd libsystemd">
            <primary sortas="c-libsystemd">libsystemd</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="libudev">
        <term><filename class="libraryfile">libudev</filename></term>
        <listitem>
          <para>用于访问 udev 设备信息的库</para>
          <indexterm zone="ch-system-systemd libudev">
            <primary sortas="c-libudev">libudev</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>
