问题现象
前置条件:
已经安装 dbus 包(yum install dbus -y),一个测试机打开两个 ssh 终端 和一个 dde 桌面(停留在不锁屏状态)
执行命令:systemctl restart dbus
执行后 dbus 服务重启成功,但 tty1 卡死
如下图所示:
问题原因
dbus 被很多服务依赖,重启会导致这些服务异常/崩溃,虽然这些服务可能会重启,但不保证都能正常,目前没有 dbus 重启后系统正常恢复的相关设计。
解决方案
1、debian 上游即有关于“重启 dbus 后系统异常”的提问,回复为不建 议手动重启 dbus,并且 stack-overflow 也有“centos7 是否有重启 dbus 而不 会导致系统崩溃”的提问,回复是“重启 dbus 会导致进程间通信异常”。可见, debian 和 centos 也有这样的问题。
2、在 A、E、D、专业版四个版本的环境中重启 dbus 服务,已经确认都会 出现问题单所描述的现象,所以这并不是个例,而是 dbus 本身机制所带来的问 题。
3、开发侧认为导致问题单中现象出现的原因是“人为的重启了 linux 系统 中不应该被手动重启的服务”而导致的问题,手动重启 dbus 服务之后,dbus 服务本身是正常启动的,也没有发生启动失败的现象。有一个很显而易见的例子: 手动重启 lightdm 会导致所有已打开的桌面应用挂掉并关闭,lightdm 正常启动 之后,这些应用也不能自动恢复。
4、开发侧认为:dbus 提供了进程间通信能力,被很多其他服务依赖,重 启 dbus 会导致依赖 dbus 的服务异常或崩溃,该服务不能被手动重启。请勿按照一般服务来测试 dbus 服务的可重启能力,即不要手动地执行 systemctl restart dbus。
©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。