Systemd
相关的路径
/etc/systemd/system/*
- 供系统管理员和用户使用/run/systemd/system/*
- 运行时配置文件/usr/lib/systemd/system/*
- 安装程序使用
基本命令
- 显示状态:
systemctl status
- 显示激活的单元:
systemctl / systemctl list-units
- 控制与状态相关:
systemctl start/stop/reload/status <单元>
- 开机启动相关:
systemctl is-enabled/enable/disable <单元>
- 禁用与恢复:
systemctl mask/unmask <单元>
- 显示帮助:
systemctl help <单元>
- 重载 Systemd:
systemctl daemon-reload
单元文件内容
一个Systemd Service的服务配置文件大概长这样:
bash
[Unit]
Description = some descriptions
Documentation = man:xxx(8) man:xxx_config(5)
Requires = xxx1.target xxx2.target
After = yyy1.target yyy2.target
[Service]
Type = <TYPE>
ExecStart = <CMD_for_START>
ExecStop = <CMD_for_STOP>
ExecReload = <CMD_for_RELOAD>
Restart = <WHEN_TO_RESTART>
RestartSec = <TIME>
[Install]
WantedBy = xxx.target yy.target
一个 .Service
配置文件分为三部分:
- Unit:定义该服务作为Unit角色时相关的属性
- Service:定义本服务相关的属性
- Install:定义本服务在设置服务开机自启动时相关的属性。换句话说,只有在创建/移除服务配置文件的软链接时,Install 段才会派上用场。这一配置段不是必须的,当未配置 [Install] 时,设置开机自启动或禁止开机自启动的操作将无任何效果
[Unit]
- 记录unit文件的通用信息
Description
: 描述内容Requires
: 依赖的服务,若选择单元未启动,则本单元启动失败Wants
: 依赖的服务,但选择单元未启动,对本单元无影响After
/Before
: 定义启动顺序
[Service]
- 记录 Service 的信息
Type
: 服务启动方式User
/Group
: 用户/用户组ExecStart
: 启动时执行的命令ExecStartPre
,ExecStartPost
: ExecStart执行前后所调用的命令。ExecStop
: 定义停止服务时所执行的命令,定义服务退出前所做的处理。如果没有指定,使用systemctl stop xxx命令时,服务将立即被终结而不做处理。Restart
: 定义服务何种情况下重启(启动失败,启动超时,进程被终结)。可选选项:no, on-success, on-failure,on-watchdog, on-abort
[Install]
- 安装信息
WantedBy
: 何种情况下,服务被启用。WantedBy=multi-user.target
(多用户环境下启用)Alias
: 别名