cupsd 使用 100% CPU,创建大 (80GB+) error_log

wnd*_*ndg 10 permissions printing log

几天前,我意识到我的 Ubuntu 机器在登录后无法加载。在对 liveCD 进行了一番挖掘后,我意识到我的硬盘容量为 100%,因此我删除了一些大文件并能够登录。我不再具有 sudo 权限,不得不启动到恢复模式并更改 sodoers文件,但最终恢复了 root 权限。

然后我注意到我的机器有点迟钝,并且top显示 cupsd 使用 100% CPU。我以前从未见过这个程序,但我很快意识到这是一个合法的程序。

我删除了大约 40GB 的视频,却发现我的驱动器空间几乎立即在我眼前耗尽。通过一些研究和直觉,我意识到这可能是一个日志文件被炸毁了,果然ls -lh /var/log/cups/向我展示了一个 80GB+ 大的 error_log 文件。

我删除了文件sudo rm -rf /var/log/cups/error_log,用 终止了服务sudo service cups end,然后继续我的工作。之后我意识到在删除之前检查 error_log 的内容是个好主意,但我想在我再次被锁定之前摆脱它。

那是昨天。今天,我再次启动我的笔记本电脑,看到 cupsd 再次以 100% cpu 运行,果然我看到我的磁盘空间正在耗尽。我停止了服务并运行tail -f /var/log/cups/error_log,并且有数百万行:

W [15/Jul/2015:11:23:03 -0700] Notifier for subscription 911 (dbus://) went away, retrying!
E [15/Jul/2015:11:23:03 -0700] File "/usr/lib/cups/notifier/dbus" has insecure permissions (0100777/uid=0/gid=0).
Run Code Online (Sandbox Code Playgroud)

==编辑================================================ ==================

ls -l /usr/lib/cups/notifier/dbus节目权限和所有权-rwxrwxrwx 1 root root时,他们应该是-rwxr-xr-x 1 daemon root,在评论中所描述的。sudo chown root:root /usr/lib/cups/notifier/dbus也没有解决所有权问题。

最后我卸下并重新安装了杯子,但无济于事。这些链接是作为潜在有用的指南给出的,(不小心 chmod -R on /恢复 chown 权限)但它们最终导致建议重新安装操作系统本身。

sal*_*nap 16

对于 Ubuntu 15.10,对我有用的是:

sudo service cups stop
sudo rm /etc/cups/subscriptions.conf*
sudo rm -r /var/cache/cups
sudo service cups start
Run Code Online (Sandbox Code Playgroud)

(如果你不能停止杯子尝试):

ps aux | grep cups
Run Code Online (Sandbox Code Playgroud)

从输出中获取进程 ID (pid) 并:

kill -9 (pid you have learned here)
Run Code Online (Sandbox Code Playgroud)

  • 我这样做了,它有帮助,但直到我重新启动我的电脑。有没有办法让这个持续下去? (2认同)

小智 1

我无法发表评论,所以这是答案的形式:

sudo chown root:root /usr/lib/cups/notifier/dbus
Run Code Online (Sandbox Code Playgroud)

既然您拥有正确的权限,可能会有所帮助。您系统上的用户 1 是谁?如果您不知道文件的权限/所有权是如何从默认值更改的,那么问题可能只是冰山一角。如果是这样,建议重新安装。