systemd
systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 PID 1 并负责启动其它程序。功能包括:支持并行化任务;同时采用 socket 式与 D-Bus 总线式启用服务;按需启动守护进程(daemon);利用 Linux 的 cgroups 监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。systemd 支持 SysV 和 LSB 初始脚本,可以替代 sysvinit。除此之外,功能还包括日志进程、控制基础系统配置,维护登录用户列表以及系统账户、运行时目录和设置,可以运行容器和虚拟机,可以简单的管理网络配置、网络时间同步、日志转发和名称解析等。
systemctl
systemctl list-units
获取所有的服务单元,显示所有服务单元的状态
systemctl status <name>.service
1 | ● sddm.service - Simple Desktop Display Manager |
项 | 描述 |
---|---|
Loaded |
是否服务单元已载入的信息,单元文件的绝对路径,以及是否在引导时启动该单元的说明。 |
Active |
服务单元是否在运行的信息,后面有一个时间戳。 |
Main PID |
进程 ID 和相应系统服务的名称。 |
Status |
相关系统服务的额外信息。 |
Process |
有关相关进程的附加信息。 |
CGroup |
有关相关的控制组(cgroups )的额外信息。 |
systemctl is-active <name>.service
查看服务的状态systemctl is-enabled <name>.service
查看服务是否是自动启动systemctl list-dependencies --[after,before] <name>.service
查看服务启动先后顺序systemctl mask <name>.service
让一个服务不能启动systemctl start <name>.service
启动一个服务systemctl stop <name>.service
关闭一个服务systemctl restart <name>.service
重启一个服务systemctl enable <name>.service
让一个服务自启动systemctl disable <name>.service
取消一个服务自启动systemctl mask <name>.service
让一个服务不能启动
tldr
1 | tldr systemctl |
列出在这个服务之前或者这个服务之后启动之前的列表
systemd file
systemd 文件格式
类型主要为 当然还有一些其他的东西
service
socket
device
mount
对于激活systemd文件的正确做法是创建像这里的这种文件
1 | /etc/systemd/system/<单元名称> . <类型扩展> |
对于要覆盖原有配置不建议直接修改原配置 而是通过对应的目录来修改
1 | /etc/systemd/system/<unit>.d/overwrite.conf |
systemd 单元的文件位置
/usr/lib/systemd/system/ |
systemd 随安装的软件包一起分发的单元文件。 |
---|---|
/run/systemd/system/ |
systemd 运行时创建的单元文件。此目录优先于已安装服务单元文件的目录。 |
/etc/systemd/system/ |
systemd 使用systemctl enable 命令创建的单元文件 |
示例文件
1 | [Unit] |