Cupsd mit 100% CPU, wodurch ein großes (80 GB +) Fehlerprotokoll erstellt wird

9

Vor ein paar Tagen wurde mir klar, dass mein Ubuntu-Computer nach dem Login nicht geladen werden würde. Nachdem ich mich auf einer Live-CD umgesehen hatte, stellte ich fest, dass meine Festplatte zu 100% ausgelastet war, löschte einige große Dateien und konnte mich anmelden. Ich hatte keine Sudo-Berechtigungen mehr und musste in den Wiederherstellungsmodus booten und die Sodoers wechseln Datei, aber schließlich wiederhergestellt Root-Berechtigungen.

Dann bemerkte ich, dass meine Maschine etwas träge war und topCupsd mit 100% CPU zeigte. Ich habe dieses Programm noch nie gesehen, aber bald wurde mir klar, dass es ein legitimes Programm war.

Ich habe Videos im Wert von ca. 40 GB gelöscht, nur um zu sehen, dass mein Speicherplatz vor meinen Augen fast augenblicklich erschöpft ist. Mit ein wenig Recherche und Intuition wurde mir klar, dass es sich möglicherweise um ls -lh /var/log/cups/eine aufgeblasene Protokolldatei handelt, und mir wurde eine error_log-Datei mit einer Größe von über 80 GB angezeigt.

Ich löschte die Datei sudo rm -rf /var/log/cups/error_log, beendete den Dienst mit sudo service cups endund ging meinem Geschäft nach. Danach wurde mir klar, dass es eine gute Idee gewesen wäre, den Inhalt von error_log zu überprüfen, bevor ich es löschte, aber ich wollte das Ding loswerden, bevor ich wieder ausgesperrt wurde.

Das war gestern. Heute habe ich meinen Laptop wieder gestartet und sah, dass cupsd wieder mit 100% CPU lief, und ich sehe, dass mein Speicherplatz knapp wird. Ich habe den Dienst gestoppt und ausgeführt tail -f /var/log/cups/error_log, und es gibt Millionen von Zeilen davon:

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).

== BEARBEITEN =============================================== ==================

ls -l /usr/lib/cups/notifier/dbuszeigt Berechtigungen und Eigentumsverhältnisse so an, wie -rwxrwxrwx 1 root rootsie sein sollten -rwxr-xr-x 1 daemon root, wie in den Kommentaren beschrieben. sudo chown root:root /usr/lib/cups/notifier/dbushat auch die Besitzprobleme nicht behoben.

Schließlich entfernte ich Tassen und setzte sie wieder ein, aber ohne Erfolg. Diese Links wurden als potenziell hilfreiche Anleitungen angegeben ( versehentlich chmod -R on / , Chown-Berechtigungen wiederherstellen ), führen jedoch letztendlich zu einer Neuinstallation des Betriebssystems.

wndg
quelle
Was ist die Ausgabe von ls -l /usr/lib/cups/notifier/dbus? Ich hatte vor langer Zeit ein ähnliches Problem und die einzige einfache Möglichkeit, es zu lösen, bestand darin, CUPS zu deaktivieren ... (damals kein Druck)
Wilf
1
-rwxrwxrwx 1 root 14k 5. September 2014 / usr / lib / notifier / dbus
wndg
1
Was machen Tassen überhaupt? Ich meine, wenn es ohne ernsthafte Auswirkungen deaktiviert werden kann ....
wndg
1
Es erledigt die meisten Dinge zum Drucken, so dass Sie ohne es nicht drucken können. Ich denke, die Berechtigungen für die Datei sollten sein -rwxr-xr-x (das sind die Berechtigungen für meine Ubuntu 14.04-Installation) , damit Sie das Problem möglicherweise beheben können, indem Sie sudo chmod 755 /usr/lib/cups/notifier/dbusCUPs oder den Computer ausführen (und dann neu starten).
Wilf
1
Drucken wie beim Drucken von Papier? Die Berechtigungen sind jetzt -rwxr-xr-xjedoch nach dem Neustart von cupsd immer noch mit 95% + und der Erstellung einer großen error_log-Datei (jedoch scheinbar nicht so schnell?).
wndg

Antworten:

16

Für Ubuntu 15.10 funktionierte Folgendes:

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

(Wenn Sie die Tassen nicht stoppen können, versuchen Sie es):

ps aux | grep cups

Prozess-ID (pid) aus der Ausgabe abrufen und:

kill -9 (pid you have learned here)
salihcenap
quelle
2
Ich habe dies getan und es hilft, aber nur bis ich meinen PC neu starte. Gibt es eine Möglichkeit, dies zum Letzten zu machen?
tobias_k
1

Auf Debian 9

  1. user @ machine: sudo su

  2. root @ machine:

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

Rückkehr:

 ok Tassen über systemctl cups.service neu starten

und speichere mein Log und meine CPU

Nolwennig
quelle
1

einfach gemacht, es funktioniert für mich:

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

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

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

es gemacht !!!

Avani Badheka
quelle
2
Könnten Sie bitte kommentieren, was genau dies bewirkt oder warum es das Problem löst?
tobias_k
0

Ich kann keinen Kommentar abgeben, daher erfolgt dies in Form einer Antwort:

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

könnte helfen, jetzt, wo Sie die Berechtigungen richtig haben. Wer ist Benutzer 1 auf Ihrem System? Wenn Sie nicht wissen, wie die Berechtigungen / der Besitz der Datei gegenüber der Standardeinstellung geändert wurden, liegt das Problem möglicherweise an der Spitze eines Eisbergs. In diesem Fall ist eine Neuinstallation ratsam.

JEL
quelle
Ich führte den Befehl aus und startete neu und nichts schien sich zu ändern. Ich bin mir nicht sicher, wie ich herausfinden soll, wer Benutzer 1 ist. Was denkst du könnte "der Rest des Eisbergs" sein, wie du es ausdrückst ...?
wndg
Benutzer 1 auf einem neu installierten Ubuntu-System ist Daemon. Dass Ihr ls-Befehl -rwxrwxrwx 1 rootim Gegensatz zu zurückgegeben wird, -rwxr-xr-x daemon rootdeutet auf beschädigte oder fehlende Systemdateien hin. Der Daemon-Benutzer 1 ist keinem Namen in / etc / passwd zugeordnet.
JEL
Ich habe mir gerade / etc / passwd angesehen und Benutzer 1 war Daemon, aber ich denke, Sie sagen, mein Problem ist damit nicht verbunden. Wie würde ich dann herausfinden, wer Benutzer 1 ist?
wndg
Wenn Benutzer 1 ein Daemon in passwd ist, sollte dies als Benutzer angezeigt werden, der die dbus-Datei besitzt. Haben Sie versucht, die Tassen wieder einzubauen? Stellen Sie sicher, dass Sie zuerst / etc / cups sichern.
JEL
Edit: id daemongibt miruid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg