Systemd 是一个软件套件,它为 Linux 操作系统提供了一系列系统组件。它的主要目标是在 Linux 发行版之间统一服务配置和行为; 它的主要组件是“系统和服务管理器”ーー一个用于引导用户空间和管理用户进程的 init 系统。它还可以替代各种守护进程和实用程序,包括设备管理、登录管理、网络连接管理和事件日志记录。命名系统符合 Unix 命名守护进程的惯例,在后面加上字母 d 。它也适用于术语“ System D”,指的是一个人快速适应和即兴解决问题的能力。
自2015年以来,大多数 Linux 发行版都采用了 systemd,取代了其他 init 系统,如 SysV init。采用它的发行版的开发人员和用户称赞它为 Linux 领域存在多年的问题提供了一个稳定、快速的开箱即用解决方案。在大多数 Linux 发行版采用 systemd 的时候,它是唯一一个在引导过程中提供可靠并行性以及对进程、守护进程、服务和挂载点进行集中管理的软件套件。
Systemd 并不是一个命令,而是一组命令,涉及到系统管理的方方面面。
image.png image.png
通过 systemd-nspawn systemd 可以独占访问统一层次结构的 cgroup
# 重启系统
$ sudo systemctl reboot
# 关闭系统,切断电源
$ sudo systemctl poweroff
# CPU停止工作
$ sudo systemctl halt
# 暂停系统
$ sudo systemctl suspend
# 让系统进入冬眠状态
$ sudo systemctl hibernate
# 让系统进入交互式休眠状态
$ sudo systemctl hybrid-sleep
# 启动进入救援状态(单用户状态)
$ sudo systemctl rescue
# 列出当前session
$ loginctl list-sessions
# 列出当前登录用户
$ loginctl list-users
# 列出显示指定用户的信息
$ loginctl show-user ruanyf
Systemd 可以管理所有系统资源。不同的资源统称为 Unit(单位)。
Unit 一共分成12种。
Service unit:系统服务
Target unit:多个 Unit 构成的一个组
Device Unit:硬件设备
Mount Unit:文件系统的挂载点
Automount Unit:自动挂载点
Path Unit:文件或路径
Scope Unit:不是由 Systemd 启动的外部进程
Slice Unit:进程组
Snapshot Unit:Systemd 快照,可以切回某个快照
Socket Unit:进程间通信的 socket
Swap Unit:swap 文件
Timer Unit:定时器
# 列出正在运行的 Unit
$ systemctl list-units
# 列出所有Unit,包括没有找到配置文件的或者启动失败的
$ systemctl list-units --all
# 列出所有没有运行的 Unit
$ systemctl list-units --all --state=inactive
# 列出所有加载失败的 Unit
$ systemctl list-units --failed
# 列出所有正在运行的、类型为 service 的 Unit
$ systemctl list-units --type=service
网友评论