kylin-麒麟操作系统-安装内存泄露补丁-以及kylin-kms-activation.service服务不断重启解决思路

前言

who:本文写给想解决kylin-kms-activation.service服务不断重启。

what:主要分为问题现象、解决思路两个部分。

when:文档创建时间:2024年8月29日

where:作者-松鼠会吃榛子 版本v1

why:希望能帮读者了解这个问题,并了解麒麟操作系统官网,并能够自行查找资料。







1. 问题现象

银河麒麟高级服务器操作系统V10SP3(X86)kylin-kms-activation.service服务报错问题。

kylin-kms-activation.service服务是银河麒麟高级服务器操作系统中用于KMS(Key Management Service)激活的系统服务。该服务在系统中默认每30秒重启一次,如果服务无法正常加载,系统会报错,并且message日志会每30秒刷新一次。这表明该服务在系统中扮演着重要的角色,特别是在处理激活状态和与KMS服务器的通信方面。

KMS是一种由Microsoft提供的服务,用于在企业内部或教育机构内部管理大量许可证。该服务在系统中负责处理激活相关的任务,包括与KMS服务器的通信和激活状态的管理。



1.1 使用journalctl命令查看更详细的日志信息

journalctl -u kylin-kms-activation.service | tail -n 20

在这里插入图片描述

根据提供的日志内容,看起来是麒麟操作系统(Kylin OS)中的一个服务kylin-kms-activation.service遇到了问题。这个服务似乎在尝试启动时失败了,并且系统尝试了多次重启服务,但每次重启后都以相同的错误退出。

这里是一些关键点:

  1. systemd[1]: 这是麒麟操作系统中的初始化系统,负责管理服务的启动和停止。
  2. Stopped run kylin_kms_daemon at boot time.: 这表明kylin_kms_daemon服务在启动时被停止了。
  3. Started run kylin_kms_daemon at boot time: 这表明kylin_kms_daemon服务被尝试重新启动。
  4. kylin-kms-activation.service: Main process exited, code=exited, status=255/EXCEPTION: 这表明服务的主进程退出了,并且退出状态码是255,这通常表示发生了异常。
  5. Service RestartSec=30s expired, scheduling restart: 这表明服务的重启间隔时间(RestartSec)已经过期,系统正在安排重启服务。
  6. restart counter is at 3569: 这表明服务已经被尝试重启了3569次。




2. 解决思路

2.1 思路一:

步骤 1: 修改kylin-kms-activation.service服务文件

 vim  /usr/lib/systemd/system/kylin-kms-activation.service 

[unit]部分添加以下参数

# Manually added parameters
StartLimitInterval=180
StartLimitBurst=1

在这里插入图片描述

步骤2:重新加载服务配置。

systemctl daemon-reload

步骤3:重新启动服务,并检查状态。

systemctl restart kylin-kms-activation.service
systemctl status kylin-kms-activation.service

在这里插入图片描述

根据systemctl status命令的输出内容,kylin-kms-activation.service服务目前的状态是:

  • Loaded: 加载了服务定义,位于/usr/lib/systemd/system/kylin-kms-activation.service;服务已被启用(enabled);但供应商默认情况下是禁用的(vendor preset: disabled)。
  • Active: 服务当前是活跃的(active)且正在运行(running),自2024年8月29日14:30:35起运行,大约1秒前。
  • Main PID: 主要进程ID是285941,正在运行kylin_kms_daemo(注意这里可能有一个拼写错误,应该是kylin_kms_daemon)。
  • Tasks: 服务启动了2个任务。
  • Memory: 服务使用了1.1MB的内存。
  • CGroup: 服务所在的控制组(cgroup)路径。

从这些信息来看,服务似乎正在正常运行。

步骤4:要查看服务的最后30行日志。

主要看最后面的。

journalctl -u kylin-kms-activation.service -n 30

在这里插入图片描述

发现日志还是显示kylin-kms-activation.service不断重启,还报错Failed to start run kylin_kms_daemon at boot time.

步骤5:查看服务状态。

systemctl status kylin-kms-activation.service

在这里插入图片描述



2.2 思路二:

步骤 1: 修改kylin-kms-activation.service服务文件

 vim  /usr/lib/systemd/system/kylin-kms-activation.service 

[Service]部分修改第13行参数

# Modify the following line
Restart=failure

Restart=on-failure

在这里插入图片描述

步骤2:下面参考思路一:的操作来。

systemctl daemon-reload
systemctl restart kylin-kms-activation.service
systemctl status kylin-kms-activation.service
journalctl -u kylin-kms-activation.service -n 3

在这里插入图片描述

发现报exit-code



2.3 合理的解法:

步骤 1: 不动原来的配置。
在这里插入图片描述

步骤 2: 重新加载服务配置,重新启动服务。

systemctl daemon-reload
systemctl restart kylin-kms-activation.service
systemctl status kylin-kms-activation.service

在这里插入图片描述

步骤 3: 再查看服务日志。

journalctl -u kylin-kms-activation.service -n 3

在这里插入图片描述

系统已恢复到原来的情况。

==这个问题,具体是什么原因,目前还不知道。==如果有知道的技术爱好者可以私信我。

步骤 4: 使用top命令查看kylin_kms_daemo进程的状态。

top

在这里插入图片描述

  • PID: 104187 —— 这是进程的ID,是一个唯一的数字,用来标识系统中的进程。
  • USER: root —— 表示运行该进程的用户是root
  • PR: 20 —— 表示进程的优先级。数值越小,优先级越高。
  • NI: 0 —— 表示进程的nice值,也就是进程的相对优先级。nice值越小,进程的优先级越高。
  • VIRT: 29444 —— 表示进程使用的虚拟内存总量,单位是KB。
  • RES: 8400 —— 表示进程使用的物理内存(常驻集)大小,单位是KB。
  • SHR: 7268 —— 表示进程使用的共享内存大小,单位是KB。
  • S: 表示进程的状态。S代表中断睡眠状态(Interruptible sleep),进程正在等待某个事件的完成。
  • %CPU: 0.0 —— 表示进程在过去的一段时间内(通常是1分钟)所占用的CPU百分比。
  • %MEM: 0.1 —— 表示进程使用的物理内存占总内存的百分比。
  • TIME+: 0:00.02 —— 表示进程已经运行的总CPU时间,这里是0分钟和2秒钟。
  • COMMAND: kylin_kms_daemo —— 这是启动进程的命令。

根据这些信息,可以看出kylin_kms_daemo进程正在运行,占用的资源相对较少(0.1%的内存),并且在过去一段时间内几乎没有使用CPU(0.0%的CPU使用率)。所以,即便启动这个服务也不会占用太多资源。

步骤 5: 考虑不断产生日志会不会占用磁盘空间。

  • 查看日志文件位置
cd /var/log

在这里插入图片描述

cat命令查看ky*等几个文件,发现并没有跟kylin-kms-activation.service服务相关的日志文件。

  • kylin-kms-activation.service 文件加入日志文件存储的地方,以方便后期删除。
 vim  /usr/lib/systemd/system/kylin-kms-activation.service 
  • [Service]部分添加以下参数
StandardOutput=file:/var/log/kylin-kms-activation-service.log
StandardError=file:/var/log/kylin-kms-activation-service.err
  • 重新加载服务配置,重新启动服务。
systemctl daemon-reload
systemctl restart kylin-kms-activation.service
systemctl status kylin-kms-activation.service
  • 查看日志。

发现并没有相关日志出现
在这里插入图片描述

后面我改为原来的配置了,并在一台机器上停止了这个服务,一台机器上启动这个观察有什么变化。后续再看看是什么原因,也许可能本身这个服务就是这个吗设置的(苦笑)

systemctl stop kylin-kms-activation.service






3. 扩展-修复内存泄露

修复 libkylin-activation 软件包在 KMS 环境中的内存泄漏问题是一个很好的改进措施。

1.查看是否已安装kylin-kms-activation相关的软件包。

[root@localhost ~]#  rpm -qa | grep  libkylin-activation
[root@localhost ~]# 


3.1 查看自己使用的镜像

我已经清楚自己挂载的镜像是那一个。
在这里插入图片描述

如果你不清楚的话,可以用命令查看系统信息,再去官网对照。

[root@localhost ~]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Lance)

Kernel:
4.19.90-52.22.v2207.ky10.x86_64

Build:
Kylin Linux Advanced Server
release V10 (SP3) /(Lance)-x86_64-Build23/20230324
#################################################
[root@localhost ~]# 


3.2 到麒麟官网下载相应的补丁包

下载地址KYBA-202309-1004 - 国产操作系统、麒麟操作系统——麒麟软件官方网站 (kylinos.cn)

注意:根据自己的操作系统版本下载。

在这里插入图片描述



3.3 安装步骤

1.用xftp上传到服务器中。

[root@localhost 桌面]# ls
libkylin-activation-3.0-64.p54.ky10.x86_64.rpm
[root@localhost 桌面]# 

2.安装。

注意:如果没有连接外网的话,需要用镜像设置本地仓库源。

[root@localhost 桌面]# dnf install -y libkylin-activation-3.0-64.p54.ky10.x86_64.rpm                       

3.检查是否已经安装。

[root@localhost 桌面]# rpm -qa | grep -i libkylin-activation-3.0-64.p54.ky10.x86_64
libkylin-activation-3.0-64.p54.ky10.x86_64
[root@localhost 桌面]# 


3.4 重启kylin-kms-activation.service服务

 systemctl restart kylin-kms-activation.service
 systemctl status kylin-kms-activation.service
 systemctl enable kylin-kms-activation.service






4. 麒麟相关资料手册

下载地址资料下载 (kylinos.cn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值