三周内,我的两台 Ubuntu 20.04LTS 服务器systemd
突然变得无响应。症状:
systemctl
用于控制服务或访问日志的命令都会失败并显示错误消息:Failed to retrieve unit state: Connection timed out
Failed to get properties: Connection timed out
Run Code Online (Sandbox Code Playgroud)
systemd
不理会logrotate
重新打开日志的信号,继续写入重命名的日志文件/var/log/syslog.1
,而新创建的日志文件/var/log/syslog
仍为空。/etc/init.d
到非功能性systemctl
.Connection timed out
除了尝试与 交互的消息之外,日志中没有任何异常systemd
。普遍提出的纠正措施:
systemctl daemon-reexec
kill -TERM 1
/run/systemd/system/session-*.scope.d
不要解决问题。唯一的补救措施是重新启动整个系统,这对于地球另一端的服务器来说当然既具有破坏性又存在问题。
在大约 100 台服务器中,Ubuntu 16.04LTS 大约每月都会出现一次同样的问题。自从升级到 20.04LTS 以来,这种情况已经少了很多,但并没有完全消失。在自 20.04LTS 以来受到攻击的两台服务器中,其中一台在运行 16.04LTS 时就已经受到攻击。
问题:
systemd
故障的可能原因是什么?systemd
重新启动破坏性更小的方法来从无响应中恢复?这是一个非常古老的问题,但我希望它可以节省其他人的时间。
我遇到了同样的问题,一些僵尸和 systemctl 响应任何超时请求。正如预期的那样,问题是删除守护进程。至少在我们的案例中,解决方案是:
telinit u
systemctl daemon-reexec
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5649 次 |
最近记录: |