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

1、故障描述

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

2、影响范围

非正常关机流程的机器

3、故障处理过程

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

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

4、原因定位

强制断电,vncserver未正常退出。导致/tmp/.X11-unix/X[0-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
相关推荐
小白跃升坊5 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey5 小时前
【Linux】线程同步与互斥
linux·笔记
杨江5 小时前
seafile docker安装说明
运维
舰长1155 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀5 小时前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng6 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.6 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
树℡独6 小时前
ns-3仿真之应用层(三)
运维·服务器·ns3
VekiSon6 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
zl_dfq6 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux