sysmaster使用说明
本章主要通过一些实例来带领用户初步使用 sysmaster
,例如:
- 如何创建
service
服务单元配置文件。 - 如何管理单元服务,例如启动、停止、查看服务。
更多可以查阅官方手册。
创建单元配置文件
用户可以在 /usr/lib/sysmaster/system/
目录下创建单元配置文件。
单元配置文件的类型
当前 sysmaster
支持 target
、socket
、service
类型的单元配置文件。
target
:封装了一个由sysmaster
管理的启动目标,用于将多个单元集中到一个同步点。sysmaster
提供不同阶段的target
单元,例如multi-user.target
代表系统已完成启动,用户可以依赖此目标,启动自己的服务。socket
:封装了一个用于进程间通信的套接字socket
, 以支持基于套接字的启动。例如用户可以配置service
单元依赖此socket
,当此socket
有数据写入时,sysmaster
会拉起对应的service
单元。service
:封装了一个被sysmaster
监视与控制的进程。
单元配置文件的构成
单元配置文件通常由3块组成:
Unit
:单元的公共配置说明,如服务名称、描述、依赖关系等。Install
:描述如何安装和启动服务。Service
、Socket
:各个单元类型的配置。
创建service单元配置
sshd
服务被用来远程登录到服务器,并在远程终端上执行命令和操作。
使用如下配置项来创建一个 sshd.service
服务单元配置。
[Unit]
Description="OpenSSH server daemon"
Documentation="man:sshd(8) man:sshd_config(5)"
After="sshd-keygen.target"
Wants="sshd-keygen.target"
[Service]
Type="notify"
EnvironmentFile="-/etc/sysconfig/sshd"
ExecStart="/usr/sbin/sshd -D $OPTIONS"
ExecReload="/bin/kill -HUP $MAINPID"
KillMode="process"
Restart="on-failure"
RestartSec=42
[Install]
WantedBy="multi-user.target"
以下是对单元配置文件中选项配置的说明,更多可以查阅官方手册。
Description
:说明该unit
的主要功能。Documentation
:说明该unit
的文档链接。After
:配置同时启动的单元的先后顺序,sshd.service
服务将在sshd-keygen.target
之后启动。Wants
:配置一个单元对另一个单元的依赖,启动sshd.service
服务,将会自动启动sshd-keygen.target
。Type
:配置sysmaster
如何启动此服务,notify
表明需要主进程启动完成后发送通知消息。EnvironmentFile
:设置环境变量的文件读取路径。ExecStart
:配置服务启动时执行的命令,启动sshd.service
服务会执行sshd
命令。ExecReload
:配置重新加载sshd.service
的配置时执行的命令。KillMode
:配置当需要停止服务进程时,杀死服务进程的方法,process
表示只杀死主进程。Restart
:配置服务不同情况下退出或终止,是否重新启动服务,on-failure
表示当服务非正常退出时重新启动服务。RestartSec
:配置当服务退出时,重新拉起服务的间隔时间。WantedBy
:配置依赖当前sshd.service
服务的单元。
管理单元服务
sctl
是 sysmaster
的命令行工具,用于检查和控制 sysmaster
服务端行为和各个服务的状态,它可以启动、停止、重启、检查系统服务。
启动服务
使用以下命令可以启动 sshd
服务和运行 ExecStart
所配置的命令。
# sctl start sshd.service
停止服务
使用以下命令可以停止 sshd
服务,杀死 ExecStart
所运行的进程。
# sctl stop sshd.service
重启服务
使用以下命令可以重启 sshd
服务,该命令会先停止后启动服务。
# sctl restart sshd.service
查看服务状态
使用以下命令可以查看服务 sshd
运行状态,用户可以查看服务的状态来获取服务是否正常运行。
# sctl status sshd.service
文档捉虫