---
title: sysMaster用户指南-官方技术文章-鲲鹏社区
description: 本文介绍 sysMaster 的基础教程
keywords: Master,用户指南,官方技术文章,鲲鹏社区,概述,读者对象,安装与部署,软件要求
url: https://www.hikunpeng.com/developer/techArticles/20251209-15?envFlag=1
section: (其他)
---

# sysMaster用户指南-官方技术文章-鲲鹏社区

URL: https://www.hikunpeng.com/developer/techArticles/20251209-15?envFlag=1
描述: 本文介绍 sysMaster 的基础教程
关键词: Master,用户指南,官方技术文章,鲲鹏社区,概述,读者对象,安装与部署,软件要求

官方技术文章 [了解详情](https://www.hikunpeng.com/zh/developer/techArticles)

sysMaster用户指南

sysMaster用户指南

openEuler

发表于 2025/12/09

0

## 概述

`sysMaster`是一套超轻量、高可靠的服务管理程序集合，是对`1`号进程的全新实现，旨在改进传统的`init`守护进程。它使用`Rust`编写，具有故障监测、秒级自愈和快速启动等能力，从而提升操作系统可靠性和业务可用度。

`sysMaster`支持进程、容器和虚拟机的统一管理，其适用于服务器、云计算和嵌入式等多个场景。

`sysMaster`实现思路是将传统`1`号进程的功能解耦分层，结合使用场景，拆分出`1+1+N`的架构。

如下面`sysMaster`系统架构图所示，主要包含三个方面:•`sysmaster-init`：新的`1`号进程提供系统初始化、僵尸进程回收、分析保活等功能，可单独应用于嵌入式场景。•`sysmaster-core`：承担原有服务管理的核心功能，引入可靠性框架，使其具备崩溃快速自愈、热升级等能力，保障业务全天在线。•`sysmaster-exts`：使原本耦合的各组件功能独立，提供系统关键功能的组件集合（如设备管理`devMaster`，总线通信`busMaster`等），各组件可单独使用，可根据不同场景灵活选用。

图1sysMaster整体架构图

`sysMaster`目前主要由`sysmaster`和`devmaster`2部分功能组成，其中`sysmaster`负责服务的管理，`devmaster`负责设备的管理，下面将对这2部分功能进行说明。

## 读者对象

本文档主要适用于使用`openEuler`并需要对服务和设备进行管理的用户。用户需要具备以下经验和技能：

- 熟悉`Linux`基本操作
- 对服务配置和设备有一定了解

# 安装与部署

`sysmaster`可应用于容器和虚拟机，本文档将以`aarch64`系统为例说明如何在各场景下进行安装与部署。

## 软件要求

- 操作系统：`openEuler 23.09`

## 硬件要求

- `x86_64`架构、`aarch64`架构

## 容器场景安装与部署

1. 安装 dockeryum install -y docker systemctl restart docker
2. 加载基础容器镜像下载容器镜像wget https://repo.openeuler.org/openEuler-23.09/docker_img/aarch64/openEuler-docker.aarch64.tar.xz xz -d openEuler-docker.aarch64.tar.xz加载容器镜像docker load --input openEuler-docker.aarch64.tar
3. 构建容器创建 Dockerfilecat << EOF > Dockerfile FROM openeuler-23.09 RUN yum install -y sysmaster CMD ["/usr/lib/sysmaster/init"] EOF构建容器docker build -t openeuler-23.09:latest .
4. 启动并进入容器启动容器docker run -itd --privileged openeuler-23.09:latest获取CONTAINERIDdocker ps使用上一步获取到CONTAINERID进入容器docker exec -it CONTAINERID /bin/bash

## 虚拟机场景安装与部署

1. initramfs镜像制作 为了避免 initrd阶段 systemd的影响，需要制作一个剔除 systemd的 initramfs镜像，并以该镜像进入 initrd流程。使用如下命令：dracut -f --omit "systemd systemd-initrd systemd-networkd dracut-systemd" /boot/initrd_withoutsd.img
2. 新增启动项在 grub.cfg中增加新的启动项，aarch64下的路径为 /boot/efi/EFI/openEuler/grub.cfg，x86_64下的路径为 /boot/grub2/grub.cfg，拷贝一份原有启动项，并做以下几处修改：menuentry 项修改启动项名称 openEuler (6.4.0-5.0.0.13.oe23.09.aarch64) 23.09为 openEuler 23.09 withoutsdlinux 项内核启动参数修改 root=/dev/mapper/openeuler-root ro 为 root=/dev/mapper/openeuler-root rwlinux 项内核启动参数修改 plymouth，如果环境上安装了 plymouth, 需要添加 plymouth.enable=0 禁用 plymouthlinux 项内核启动参数增加 init=/usr/lib/sysmaster/initinitrd 项修改为 /initrd_withoutsd.img
3. 安装 sysmasteryum install sysmaster
4. 重启后出现 openEuler 23.09 withoutsd启动项表示已成功配置，选择此启动项进入虚拟机

# 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"
```

以下是对单元配置文件中选项配置的说明，更多可以查阅官方手册 [了解详情](https://openeuler-sysmaster.github.io/sysmaster/index_zh/)。

- `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
```

本页内容
