cupsd использует 100% CPU, создавая большой (80GB +) error_log

9

Несколько дней назад я понял, что моя машина с Ubuntu не будет загружаться после входа в систему. После нескольких копаний на liveCD я понял, что мой жесткий диск заполнен на 100%, поэтому я удалил несколько больших файлов и смог войти в систему. У меня больше не было разрешений sudo, и мне пришлось загружаться в режиме восстановления и менять sodoers. файл, но в итоге восстановлены права root.

Затем я заметил, что моя машина была немного вялой, и topпоказывал cupsd, используя 100% CPU. Я никогда не видел эту программу раньше, но вскоре понял, что это законная программа.

Я удалил видео объемом около 40 ГБ, только чтобы увидеть, как мое дисковое пространство почти мгновенно истощается на моих глазах. После небольшого исследования и интуиции я понял, что это может быть взорванный файл журнала, и, конечно же, ls -lh /var/log/cups/показал мне файл error_log, который был больше 80 ГБ.

Я удалил файл sudo rm -rf /var/log/cups/error_log, убил службу sudo service cups endи продолжил свое дело. После этого я понял, что было бы неплохо проверить содержимое error_log до того, как я его удалил, но я хотел избавиться от него, прежде чем снова заблокировать его.

Это было вчера. Сегодня я снова запустил свой ноутбук и увидел, что cupsd снова работает со 100% процессором, и, конечно же, я вижу, что мое дисковое пространство истощается. Я остановил службу и запустил 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).

== EDIT =============================================== ==================

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 ), но в конечном итоге они предлагают переустановить саму ОС.

wndg
источник
Какой выход ls -l /usr/lib/cups/notifier/dbus? У меня была похожая проблема давным-давно, и единственным простым способом ее решения было отключение CUPS ... (тогда не печаталось)
Уилф
1
-rwxrwxrwx 1 root 14k 5 сентября 2014 г. / usr / lib / notifier / dbus
wndg
1
Что делают чашки в любом случае? Я имею в виду, если это может быть отключено без серьезных последствий ....
Wndg
1
Он делает большую часть материала для печати, поэтому без него вы не сможете печатать. Я думаю, что разрешения для файла должны быть -rwxr-xr-x (это то, что разрешения на моей установке Ubuntu 14.04) , так что вы можете решить проблему, запустив sudo chmod 755 /usr/lib/cups/notifier/dbus(а затем перезапустив CUP или компьютер).
Уилф
1
Печать как на бумаге для печати? Однако теперь права доступа -rwxr-xr-xпосле перезапуска cupsd по-прежнему работают на уровне 95% и создают большой файл error_log (но, похоже, не так быстро?).
wndg

Ответы:

16

Для Ubuntu 15.10 у меня сработало следующее:

sudo service cups stop
sudo rm /etc/cups/subscriptions.conf*
sudo rm -r /var/cache/cups
sudo service cups start

(Если вы не можете остановить чашки, попробуйте):

ps aux | grep cups

Получить идентификатор процесса (pid) из вывода и:

kill -9 (pid you have learned here)
salihcenap
источник
2
Я сделал это, и это помогает, но только до перезагрузки компьютера. Есть ли способ сделать это в прошлом?
tobias_k
1

На Debian 9

  1. пользователь @ машина: sudo su

  2. корень @ машины:

chown -R root:root /usr/lib/cups/* && \
chmod -R 755 /usr/lib/cups/* && \
/etc/init.d/cups restart

возвращение:

 хорошо Перезапуск чашек через systemctl cups.service

и сохранить мой журнал и мой процессор

Nolwennig
источник
1

просто сделал это, у меня работает

1) sudo chmod 755 /usr/lib/cups/notifier/

2) ll /usr/lib/cups/notifier/

3) sudo /etc/init.d/cups restart

сделал это !!!

Авани Бадхека
источник
2
Не могли бы вы прокомментировать, что именно это делает, или почему это решает проблему?
tobias_k
0

Я не могу комментировать, так что это в форме ответа:

sudo chown root:root /usr/lib/cups/notifier/dbus

может помочь, теперь, когда у вас есть права доступа. Кто является пользователем 1 в вашей системе? Если вы не знаете, как права доступа к файлу изменились по сравнению с настройками по умолчанию, проблема может быть в айсберге. Если так, переустановка была бы желательна.

JEL
источник
Я запустил команду и перезапустился, и, казалось, ничего не изменилось. Не уверен, как узнать, кто пользователь 1. Как вы думаете, что может быть "остальной частью айсберга", как вы выразились ...?
wndg
Пользователь 1 во вновь установленной системе Ubuntu - демон. То, что ваша команда ls вернулась, -rwxrwxrwx 1 rootа не -rwxr-xr-x daemon rootуказывает на поврежденные или отсутствующие системные файлы. Пользователь демона, 1, не связан с именем в / etc / passwd.
JEL
Я только что посмотрел на / etc / passwd, и пользователь 1 был демоном, но, думаю, вы говорите, что моя проблема не связана с этим. Как мне найти, кто пользователь 1 тогда?
августа
Если пользователь 1 является демоном в passwd, это то, что ls должен показать как пользователь, владеющий файлом dbus. Вы пытались переустановить чашки? Обязательно сделайте резервную копию / etc / cups в первую очередь.
JEL
Изменить: id daemonдает мнеuid=1(daemon) gid=1(daemon) groups=1(daemon)
Wndg