| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697 | <?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 '178,222d' -i src/resolve/meson.build</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 buildcd       buildLANG=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}doneln -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 > /lib/systemd/systemd-user-sessions << "EOF"#!/bin/bashrm -f /run/nologinEOFchmod 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>
 |