每次我重新启动服务(例如service exim restart
,以 root 身份运行)时,我都会收到以下错误消息:
Error getting authority: Error initializing authority: Could not connect: Resource temporarily unavailable (g-io-error-quark, 27)
CPU使用率dbus-daemon
也为 100%。
的输出显示了以下错误的journalctl -r -p err -b
极端数量(条目):6979
pam_systemd(crond:session): Failed to connect to system bus: Resource temporarily unavailable
还有 5033 个会话文件。这些是通过 ssh 进行会话时,这些应该会自动删除,但我很犹豫要不要自己删除它们
ls -1 /var/run/systemd/sessions/ | wc -l
5033
原因是什么?我该如何预防?
- CentOS Linux 版本 7.2.1511(核心)
答案1
这是systemd-logind && dbus-daemon的一个bug,与https://github.com/systemd/systemd/issues/1961
因为 crond 总是调用 pam_systemd ,而 pam_systemd 总是调用 systemd-logind 来创建使用 dbus-daemon 的会话范围,但有时 dbus-daemon 总是不起作用,所以我们最好让 crond 不调用 systemd-logind
停止systemd-logind也不会影响ssh,只是不能使用session cgroup
sudo sed -i -e '/^[^#]*pam_systemd.so/ s/^/#&/g' /etc/pam.d/*
sudo systemctl mask systemd-logind
sudo systemctl stop systemd-logind