Distro: Gentoo
systemd: 242
有一段时间,在我在这里的两个系统上,我一直无法正确关机(停止、关机、重启)。它通过关闭服务等来完成大部分工作,然后就停止了。我必须使用神奇的 SysRq 键来完成这项工作。
我终于启用了 debug-shell.service 并看了一下。事实证明,systemd 在某个时候会挂在 100% CPU 上。通常有 1 或 2 个服务仍然有进程,其中一些是僵尸(我假设因为 systemd 通常会删除它们但不工作)。
这就是我所能确定的一切。我还能做些什么来诊断问题?
编辑:示例截图(裁剪):https ://imgur.com/OVOozrI内容实际上差异很大,因为事情的顺序可能不同。
编辑 2:syslog 的相关部分。我觉得那里没什么有趣的。唯一没有“停止”而“停止”的是Dovecot。但是,您可以在底部看到,它最终确实退出了。这似乎是在 systemd 开始挂起之前。我记得在调试 shell 中,Dovecot 是一个僵尸。就在不久前,我尝试关闭 Dovecot(成功)然后重新启动,但 systemd 仍然挂起。
它确实看起来像这个影响 systemd 242 初始版本的错误: https ://bugs.gentoo.org/685002 (上游:https ://github.com/systemd/systemd/issues/12335 )。
而且,事实上,从 242 到 242r1(在 gentoo 的版本控制中)的变化是应用这个补丁:https ://gitweb.gentoo.org/repo/gentoo.git/commit/sys-apps/systemd?id=eb1d80e6a30d09f9f139877c5b754c8a8e918d7a
好吧,在我更新到 242-r1 之后,这种情况就不再发生了。我能够正确关机。不幸的是,我不确定为什么。它可能是固定在 中的东西
systemd
,或者是某个地方的依赖项。