问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深入理解 Ubuntu 20.04 中的 systemd:功能、配置与最佳实践

创作时间:
作者:
@小白创作中心

深入理解 Ubuntu 20.04 中的 systemd:功能、配置与最佳实践

引用
4
来源
1.
https://launchpad.net/ubuntu/focal/+source/systemd
2.
https://forums.docker.com/t/ubuntu-20-04-with-systemd/142154
3.
https://betterstack.com/community/guides/logging/how-to-control-systemd-with-systemctl/
4.
https://linux-audit.com/system-hardening/guides/ubuntu/

在 Ubuntu 20.04 中,systemd 作为系统和服务管理器,扮演着至关重要的角色。它不仅优化了系统启动速度,还提供了强大的服务管理、资源控制和日志记录功能。本文将深入探讨 systemd 的核心功能和配置方法,帮助读者更好地理解和使用这一强大工具。

01

系统启动与服务管理

systemd 最显著的优势在于其高效的系统启动机制。通过并行启动服务和按需激活机制,systemd 能够显著减少系统启动时间。这主要得益于其独特的单元(Unit)管理机制。

systemd 中,系统资源和服务被抽象为不同的单元类型,包括服务单元(.service)、目标单元(.target)、挂载单元(.mount)等。这些单元通过配置文件进行管理,配置文件通常位于 /etc/systemd/system/ 目录下。

要管理这些单元,systemd 提供了 systemctl 命令。例如,要启动一个服务,可以使用:

sudo systemctl start <service_name>

要查看服务状态,可以使用:

sudo systemctl status <service_name>
02

资源管理与控制

systemd 通过控制组(cgroups)实现对进程及其子进程的精细资源控制。管理员可以通过配置单元文件中的 CPUQuotaMemoryLimit 等参数,为服务设置资源限制。

例如,要限制一个服务使用不超过 50% 的 CPU 资源,可以在其单元文件中添加:

[Service]
CPUQuota=50%
03

日志管理

systemd 内置了强大的日志记录工具 journalctl,可以方便地查看和过滤系统日志。例如,要查看特定服务的日志,可以使用:

sudo journalctl -u <service_name>

要查看最近的系统日志,可以使用:

sudo journalctl -n
04

挂载点管理

systemd 还负责管理系统的挂载点。在系统启动时,它会根据 /etc/fstab 文件中的配置自动挂载关键文件系统。同时,systemd 还支持动态设备(如 U 盘)的自动挂载。

05

最佳实践

  1. 配置单元文件:如果需要修改服务配置,建议在 /etc/systemd/system/ 目录下创建一个同名的 .d 子目录,并在其中添加 .conf 配置文件,而不是直接修改原始单元文件。

  2. 优化启动速度:可以通过 systemd-analyze 工具分析系统启动过程,找出耗时较长的服务进行优化。

  3. 使用快照功能systemd 支持系统状态快照,可以使用 systemctl snapshotsystemctl revert 命令实现系统状态的备份和恢复。

systemd 作为现代 Linux 系统的核心组件,通过其强大的功能和灵活的配置,为系统管理员提供了前所未有的控制力。尽管其复杂性引发了一些争议,但不可否认的是,在当前的 Linux 生态系统中,systemd 已经成为不可或缺的系统管理工具。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号