了解更多银河麒麟操作系统全新产品,请点击访问
麒麟软件产品专区:https://product.kylinos.cn
开发者专区:https://developer.kylinos.cn
文档中心:https://documentkylinos.cn
现象描述
产品信息 | 产品名称 | 银河麒麟高级服务器操作系统(海光版)V10 |
ISO | Kylin-Server-10-SP2-Release-Build09-20210524-x86_64 | |
环境信息 | 主机型号 | 虚拟机 |
systemd崩溃,后续systemd连接异常,systemctl失败。需要查明systemd崩溃原因
现象分析
日志分析
根据sosreport中的messages信息,systemd发生了coredump,收到了信号SIGQUIT。见图2.1.1
图2.1.1
coredump分析
使用gdb分析systemd的coredump文件,显示systemd是收到了SIGQUIT后发生的coredump。并未调用错误处理函数。见图2.2.1
SIGQUIT并不是出错所产生信号,进程出错会收到的信号有:SIGSEGFAULT,SIGABORT等。SIGQUIT并不是内核发出的信号。
图2.2.1
远程主机
根据2.2的分析,判断SIGQUIT可能并不是有系统产生。
远程连接到主机,检查了history发现,曾多次执行kill -quit操作,而最后一次kill操作时,参数输入有误。根据kill命令的参数格式,此参数会对0,1等进程号,发出SIGQUIT信号。见图2.3.1
图2.3.1
本地复现
根据2.3的分析,在本地尝试使用kill命令复现故障现象。见图2.4.1`
执行命令: kill -quit root 1223309 1 0 09:25
执行结果:
- systemd被kill掉,输出信息与messages中一样。
- 产生了coredump文件,堆栈信息与现场的一样。见图2.4.2
图2.4.1
图2.4.2
结论
在使用kill -quit命令时,使用了错误的参数,导致systemd被kill掉,并生成了coredump文件。
系统中未发现其他错误或故障信息,系统正常。