概述
systemd 是 Linux 系统的一组基本构建模块。它提供了一个系统和服务管理器,以 PID 1 运行并启动系统的其余部分。systemd 提供强大的并行化能力,使用套接字和 D-Bus 激活来启动服务,提供按需启动守护进程,使用 Linux 控制组跟踪进程,维护挂载点和自动挂载点,并实现复杂的基于事务依赖的服务控制逻辑。systemd 支持 SysV 和 LSB 初始化脚本,并可替代 sysvinit。其他部分包括一个日志守护进程、用于控制基本系统配置(如主机名、日期、区域设置)的实用程序、维护登录用户列表以及正在运行的容器和虚拟机、系统账户、运行时目录和设置,以及用于管理简单网络配置、网络时间同步、日志转发和名称解析的守护进程。
他是一个大而全的系统,包含了很多功能,可以如下图所示:
主要的一些功能有:
- 服务管理:systemd可以启动、停止、重启、查看服务的状态,还可以设置服务的依赖关系。
- 日志管理:systemd通过
journalctl
命令可以查看系统日志,支持按服务、时间、优先级等条件过滤。 - 定时任务:systemd可以替代cron,通过
systemd-timer
实现定时任务的管理。 - 系统初始化:systemd负责系统的初始化,包括加载内核模块、挂载文件系统、启动用户空间进程等。
- 用户会话:systemd可以管理用户会话,包括用户登录、注销、会话控制等。
- 内核管理:包括cgroups、kdbus、autofs等
- 网络管理:systemd-networkd可以管理网络配置,systemd-resolved可以管理DNS解析。
- 设备管理:systemd可以管理设备,包括磁盘、网络、USB等设备。
- cgroup管理:systemd可以管理cgroup,实现资源限制和控制。