深入理解systemd:目录、文件与管理工具
立即解锁
发布时间: 2025-09-08 01:36:34 阅读量: 13 订阅数: 21 AIGC 


systemd服务管理实战
### 深入理解 systemd:目录、文件与管理工具
在 Linux 系统中,systemd 作为初始化系统,在系统和服务的管理方面发挥着至关重要的作用。了解 systemd 的相关目录、文件以及管理工具,对于系统管理员来说是一项必备技能。接下来,我们将详细探讨这些内容。
#### 配置文件相关要点
在 systemd 的配置文件中,很多行都被注释掉了,但这并不意味着这些行没有作用。实际上,这些是编译进去的默认参数。若要修改某些配置,只需取消对应参数行的注释并修改其值即可。
另外,我们可以使用 `apropos` 命令查找在手册页名称或描述中包含特定文本字符串的所有手册页。例如,要查找所有匹配 `systemd` 字符串的页面,可输入以下命令:
```bash
apropos systemd
```
也可以输入 `man -k systemd`,它与 `apropos systemd` 是同义词。如果执行此命令没有结果,可能需要重建手册页数据库,可通过输入 `sudo mandb` 来完成。
#### systemd 单元文件解析
systemd 初始化系统通过各种类型的单元文件来控制系统和服务操作,而非使用一组复杂的 Bash 脚本。每个单元文件都有一个文件名,其扩展名描述了它所属的单元类型。
单元文件主要存放在以下两个目录:
- `/lib/systemd/system/`:这是操作系统自带或安装的软件包所包含的单元文件的默认位置。
- `/etc/systemd/system/`:当需要修改现有单元文件或创建自己的单元文件时,应在此目录进行操作。此目录中与 `/lib/systemd/system/` 中同名的单元文件具有更高优先级。
若想了解单元文件的详细信息,可输入以下命令:
```bash
man systemd.unit
```
在该手册页的底部,会指引你查看每个特定类型单元文件的其他手册页。为了更方便地查找特定指令的相关信息,可在 `systemd.directives` 手册页中查找,它会指向包含该指令信息的手册页。
常见的单元文件类型如下:
| 单元文件类型 | 功能描述 |
| --- | --- |
| service | 服务的配置文件,替代了旧 System V(SysV)系统中的传统初始化脚本。 |
| socket | 可实现不同系统服务之间的通信,或在接收到连接请求时自动唤醒休眠的服务。 |
| slice | 用于配置 cgroups。 |
| mount 和 automount | 包含由 systemd 控制的文件系统的挂载点信息,通常会自动创建。 |
| target | 在系统启动期间用于分组单元并提供知名的同步点。 |
| timer | 用于按计划调度作业,替代了旧的 cron 系统。 |
| path | 用于可通过基于路径的激活启动的服务。 |
| swap | 包含交换分区的信息。 |
#### systemd 可执行文件与系统控制
通常,我们会在 `bin/` 或 `sbin/` 目录中搜索程序的可执行文件,虽然能在这些目录找到一些 systemd 实用程序的可执行文件,但大多数 systemd 可执行文件位于 `/lib/systemd/` 目录。以下是该目录的部分文件列表:
```bash
donnie@donnie-TB250-BTC:/lib/systemd$ ls -l
total 7448
-rw-r--r-- 1 root root 2367728 Feb 6 2020 libsystemd-shared-237.so
drwxr-xr-x 2 root root 4096 Apr 3 2020 network
-rw-r--r-- 1 root root 699 Feb 6 2020 resolv.conf
-rwxr-xr-x 1 root root 1246 Feb 6 2020 set-cpufreq
drwxr-xr-x 24 root root 36864 Apr 3 2020 system
-rwxr-xr-x 1 root root 1612152 Feb 6 2020 systemd
-rwxr-xr-x 1 root root 6128 Feb 6 2020 systemd-ac-power
-rwxr-xr-x 1 root root 18416 Feb 6 2020 systemd-backlight
-rwxr-xr-x 1 root root 10304 Feb 6 2020 systemd-binfmt
-rwxr-xr-x 1 root root 10224 Feb 6 2020 systemd-cgroups-agent
-rwxr-xr-x 1 root root 26632 Feb 6 2020 systemd-cryptsetup
...
```
在某些 Linux 发行版中,`/bin` 或 `/usr/bin` 目录中会有指向 `/lib/systemd/` 目录中部分可执行文件的符号链接。不过,大多数情况下我们不会直接与这些文件交互。
`systemctl` 是用于控制 systemd 的实用工具,功能强大且用途广泛。它可以让我们查看不同单元及其状态,还能启用或禁用这些单元。下面是一些使用 `systemctl` 查看不同类型信息的命令示例:
##### 列出当前在内存中的活动单元
```bash
[donnie@localhost ~]$ systemctl list-units
UNIT
LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount
loaded active waiting Arbitrary Executable File Formats
File System Automount Point
sys-devices-pci0000:00-0000:00:17.0-ata3-host2-
target2:0:0-2:0:0:0-block-sda-sda1.device loaded active
plugged WDC_WDS250G2B0A-00SM50 1
sys-devices-pci0000:00-0000:00:17.0-ata3-host2-
target2:0:0-2:0:0:0-block-sda-sda2.device loaded active
plugged WDC_WDS250G2B0A-00SM50 2
sys-devices-pci0000:00-0000:00:17.0-ata3-host2-
target2:0:0-2:0:0:0-block-sda.device loaded active
plugged WDC_WDS250G2B0A-00SM50
sys-devices-pci0000:00-0000:00:1b.2-0000:02:00.1-sound-
card1.device loaded active plugged
GP104 High Definition Audio Controller
sys-devices-pci0000:00-0000:00:1b.3-0000:03:00.1-sound-
card2.device loaded active plugged
GP104 High Definition Audio Controller
...
```
此输出的自动挂载部分显示了已挂载的各种设备,涵盖的范围不止存储设备。
##### 查看挂载、路径和作用域单元
```bash
...
-.mount
loaded active mounted /
boot.mount
loaded active mounted /boot
dev-hugepages.mount
loaded active mounted Huge Pages File System
dev-mqueue.mount
loaded active mounted POSIX Message Queue File System
home.mount
loaded active mounted /home
run-user-1000.mount
loaded active mounted /run/user/1000
sys-fs-fuse-connections.mount
loaded active mounted FUSE Control File System
sys-kernel-config.mount
loaded active mounted Kernel Configuration File System
sys-kernel-debug.mount
loaded active mounted Kernel Debug File System
tmp.mount
loaded active mounted Temporary Directory (/tmp)
var-lib-nfs-rpc_pipefs.mount
loaded active mounted RPC Pipe File System
cups.path
loaded active running CUPS Scheduler
systemd-ask-password-plymouth.path
loaded active waiting Forward Password Requests t
```
0
0
复制全文
相关推荐









