湖南麒麟系统非正常关机导致VNC启动失败原因分析

1、故障描述

掉电后,启动vncserver无法启动,或启动后连接vncserver黑屏

2、影响范围

非正常关机流程的机器

3、故障处理过程

第一次开机后vncserver服务无法正常启动,使用restart手动也无法拉起。按照现场人员提醒使用reboot命令重启机器后,服务可以使用restart手动拉起,但断电时间过长(超过20min)后vncserver无法启动问题会复现。

将rc.local中与vncserver相关内容全部注释之后,服务仍然无法正常启动,查看相应日志可以发现vncserver认为存在该类型文件进而退出。

4、原因定位

强制断电,vncserver未正常退出。导致/tmp/.X11-unix/X0-9文件以及/root/.vnc/*.pid文件残留,后续启动若存在该类型文件则会认定已存在相应的vncserver,则会退出。

定位之前,发现rc.local有存在删除相应文件的内容

这样做会引发以下问题:

1.rc.local和vncserver@1/2的启动顺序没有关联,可能vncserver启动失败后才执行rc.local中rm相关操作

2.若问题1中vncserver@1/2启动在前,后续执行rc.local时删除/tmp/.X11-unix/X*和/root/.vnc/*.pid并restart vncserver,由于删除pid文件这vncserver中ExecStop不能正确停掉相应的vncserver进程会导致有残留的vnc服务在运行,导致后续流程错误。

5、解决方案

删除/注释掉rc.local中对于掉电前相应缓存文件清理以及restart vncserver

使用tmpfiles.d确保在vncserver启动之前清理掉电前的缓存文件。

新建/lib/tmpfiles.d/vncserver.conf文件,

文件内容如下

bash 复制代码
rm -rf  /tmp/.X11-unix/X*
rm -rf  /root/.vnc/*.pid
rm -rf  /root/.vnc/*.log
相关推荐
贞明电子1 小时前
工业三色报警灯怎么接入项目系统?开关量与RS485控制应用指南
运维·网络·微信公众平台·贞明电子
HideF2 小时前
Linux
linux·服务器·网络
万联WANFLOW2 小时前
海外网络故障怎么排查?Cloudflare 三季度断网报告解读与 mtr 实战
运维·网络·故障分析
Ruiery4 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠5 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
Decay__5 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
丰锋ff6 小时前
压缩命令笔记
linux
江华森6 小时前
数据中心基础设施运维实战:概述与实验环境搭建
运维
迪菲赫尔曼7 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
GeW8 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库