Debian/Ubuntu系统Systemd-Logind CPU占用率飙升100%
今天,我的Debian服务器上的postgresql服务当机多次,最后竟然无法启动!究其原因,竟然是……
今天,我的Debian服务器上的postgresql服务当机多次,最后竟然无法启动!究其原因,竟然是……
最近,喜欢上了Debian。与我用了十多年的Ubuntu同宗同源,几乎没有什么学习成本。 喜欢它组要有两点:
好了,上面说了那么多Debian的好话,不得不说一下今天所遇到的一个糟心的问题。当然,最终结论,这并不完全是Debian的锅,Ubuntu安装在笔记本电脑上可能也会有类似的问题。 事情要先从今天下午postgresql服务down机开始,对号称稳定压倒一切的Debian系统,我的PostgreSql居然挂了!上去重启居然启动不了?!还留下几几行日志:
2022-07-21 00:38:55.230 PDT [2280864] FATAL: could not write lock file \"postmaster.pid\": No space left on device
pg_ctl: could not start server
线索立马找出来了,居然磁盘空间不足。开始还不太愿意相信,因为这重装Debian系统才堪堪半个月上面跑的应用和数据也没多少。好吧,看看磁盘使用情况
df -h
一看吓一跳,居然128G硬盘,被用得一点空间都不剩了!

是谁,,,占用我的盘?!为了把TA给揪出来,我使用“夹逼法”,从顶层目录开始排查,看每个目录占用多少存储空间: du -lh --max-depth=1。最终,找到两个50G的 /var/log/auth.log文件!

第一次见到竟然有如此之“厚颜”的log文件!直接rm掉它们~可是,这样治标不治本必须找到它们的来源。查看一下系统应用进程,看看是否有异常。果然……

有个名叫systemd-logind的服务,进程将CPU几乎飙到了100%。
systemd-logind 是一个管理用户登录的系统服务。其职责如下:
众里寻她千百度。。。度娘竟然告诉我直接kill掉进程就完事了?想想也知道,实际并没有那么简单。但是暂时没有更好的办法先曲线救国吧。
systemctl stop systemd-logind
好像,暂时解决了。进程杀掉了,CPU也回归正常。可是,过了半个小时在看服务器的状况,systemd-logind又死灰复燃,CPU持续飙高,瞬间回到解放前。 没辙了,还是查看一下日志找找其他线索吧。度娘不靠谱,接下来还要换个其他娘来用~
systemctl status systemd-logind
看到了systemd-logind服务在疯狂输出报错信息:
systemd-logind[23724]: Suspending...
systemd-logind[23724]: Unit suspend.target is masked, refusing operation.
systemd-logind[23724]: Failed to execute suspend operation: Permission denied
这下,果然又有了新的线索。打开bing.com,查询一下。找到了英文站页面。赫然看到,人家所描述的症状跟我的一模一样! 解决方法也很简单:
/etc/systemd/logind.confHandleLidSwitch=ignoresystemctl restart systemd-logindsystemctl status systemd-logind 没有再出现上述的爆错信息了!大功告成问题解决!