Distro: Gentoo
systemd: 242
有一段时间,在我这里的两个系统上,我一直无法正确关闭(停止、关闭电源、重新启动)。它通过关闭服务等方式完成大部分工作,然后就停止了。我必须使用神奇的 SysRq 键来完成这项工作。
我终于启用了 debug-shell.service 并看了一下。事实证明,systemd 在某个时刻 CPU 利用率为 100%。通常有 1 或 2 个服务仍然有进程,其中一些是僵尸进程(我假设是因为 systemd 通常会删除它们但无法正常工作)。
这就是我所能确定的一切。我还能做什么来诊断问题?
编辑:示例屏幕截图(裁剪):https://i.stack.imgur.com/pZO2o.jpg内容实际上差异很大,因为事情的顺序可能不同。
编辑2:syslog的相关部分。我看不出有什么有趣的地方。唯一没有“停止”而“停止”的就是Dovecot。然而,你可以在底部看到,它终于退出了。这似乎是在 systemd 开始挂起之前。我记得在调试 shell 中,Dovecot 被当作僵尸留下了。就在不久前,我尝试关闭 Dovecot(成功)然后重新启动,但 systemd 仍然挂起。
答案1
它确实看起来像这个影响 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
答案2
好吧,在我更新到 242-r1 后,这种情况就不再发生了。我能够正确关闭。不幸的是,我不知道为什么。它可能是固定的东西systemd
,或者是某个地方的依赖项。