cupsd utilisant 100% CPU, créant un gros journal d'erreur (80 Go +)

9

Il y a quelques jours, j'ai réalisé que ma machine Ubuntu ne se chargerait pas après la connexion. Après quelques recherches sur un liveCD, j'ai réalisé que mon disque dur était à 100% de sa capacité, j'ai donc supprimé des fichiers volumineux et j'ai pu me connecter. Je n'avais plus d'autorisations sudo et j'ai dû démarrer en mode de récupération et changer les sodoers fichier, mais finalement récupéré les autorisations root.

J'ai alors remarqué que ma machine était un peu lente et topmontrait cupsd en utilisant 100% CPU. Je n'avais jamais vu ce programme auparavant mais je me suis vite rendu compte que c'était un programme légitime.

J'ai supprimé environ 40 Go de vidéos, seulement pour voir mon espace disque s'épuiser presque instantanément devant mes yeux. Avec un peu de recherche et d'intuition, j'ai réalisé qu'il pourrait s'agir d'un fichier journal en train de exploser, et bien sûr, il ls -lh /var/log/cups/m'a montré un fichier error_log de 80 Go +.

J'ai supprimé le fichier sudo rm -rf /var/log/cups/error_log, j'ai tué le service sudo service cups endet j'ai repris mon activité. J'ai réalisé après que cela aurait été une bonne idée de vérifier le contenu de error_log avant de le supprimer, mais je voulais me débarrasser de la chose avant d'être à nouveau verrouillé.

C'était hier. Aujourd'hui, j'ai redémarré mon ordinateur portable et j'ai vu cupsd fonctionner à nouveau à 100% du processeur, et bien sûr, je vois mon espace disque s'épuiser. J'ai arrêté le service et exécuté tail -f /var/log/cups/error_log, et il y a des millions de lignes:

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/dbusaffiche les autorisations et la propriété comme -rwxrwxrwx 1 root rootelles devraient l'être -rwxr-xr-x 1 daemon root, comme décrit dans les commentaires. sudo chown root:root /usr/lib/cups/notifier/dbusn'a pas non plus résolu les problèmes de propriété.

Enfin, j'ai retiré et réinstallé les tasses, mais en vain. Ces liens ont été donnés comme des guides potentiellement utiles ( accidentellement chmod -R on / , restaurer les autorisations chown ) mais ils ont finalement pour résultat de suggérer une réinstallation du système d'exploitation lui-même.

wndg
la source
Quelle est la sortie de ls -l /usr/lib/cups/notifier/dbus? J'ai eu un problème similaire il y a longtemps et le seul moyen facile de le résoudre était de désactiver CUPS ... (pas d'impression alors)
Wilf
1
-rwxrwxrwx 1 root 14k 5 septembre 2014 / usr / lib / notifier / dbus
wndg
1
Que font les tasses de toute façon? Je veux dire si elle peut être désactivée sans répercussions graves ....
wndg
1
Il fait la plupart des choses pour l'impression, donc sans lui, vous ne pouvez pas imprimer. Je pense que les autorisations sur le fichier devraient être -rwxr-xr-x (c'est ce que les autorisations sont sur mon installation Ubuntu 14.04) , donc vous pourrez peut-être résoudre le problème en exécutant sudo chmod 755 /usr/lib/cups/notifier/dbus(puis en redémarrant les CUP ou l'ordinateur).
Wilf
1
Impression comme dans le papier d'impression? Les autorisations sont maintenant -rwxr-xr-xcependant après le redémarrage cupsd fonctionne toujours à 95% + et la création d'un gros fichier error_log (mais apparemment pas aussi rapidement?).
wndg

Réponses:

16

Pour Ubuntu 15.10, ce qui a fonctionné pour moi était:

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

(Si vous ne pouvez pas arrêter les tasses, essayez):

ps aux | grep cups

Obtenez l'identifiant du processus (pid) à partir de la sortie et:

kill -9 (pid you have learned here)
salihcenap
la source
2
Je l'ai fait et cela aide, mais seulement jusqu'à ce que je redémarre mon PC. Y a-t-il un moyen de faire durer cela?
tobias_k
1

Sur Debian 9

  1. utilisateur @ machine: sudo su

  2. root @ machine:

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

revenir:

 ok Redémarrage de cups via systemctl cups.service

et sauvegarde mon log et mon cpu

Nolwennig
la source
1

simplement fait, ça marche pour moi:

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

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

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

c'est fait !!!

Avani badheka
la source
2
Pourriez-vous s'il vous plaît dire ce que cela fait exactement ou pourquoi cela résout le problème?
tobias_k
0

Je ne suis pas en mesure de commenter, c'est donc sous la forme d'une réponse:

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

pourrait aider, maintenant que vous avez les droits d'accès. Qui est l'utilisateur 1 sur votre système? Si vous ne savez pas comment les autorisations / la propriété du fichier ont été modifiées par rapport à la valeur par défaut, le problème peut être la pointe d'un iceberg. Si tel est le cas, une réinstallation serait souhaitable.

JEL
la source
J'ai exécuté la commande et redémarré et rien ne semblait changer. Je ne sais pas comment savoir qui est l'utilisateur 1. Selon vous, qu'est-ce qui pourrait être "le reste de l'iceberg"?
wndg
L'utilisateur 1 sur un système Ubuntu nouvellement installé est un démon. Que votre commande ls est retournée -rwxrwxrwx 1 rootpar opposition à -rwxr-xr-x daemon rootsuggère des fichiers système corrompus ou manquants. L'utilisateur démon, 1, n'est pas associé à un nom dans / etc / passwd.
JEL
Je viens de regarder / etc / passwd et l'utilisateur 1 était un démon, mais je suppose que votre problème n'est pas associé à cela. Comment puis-je trouver qui est l'utilisateur 1?
wndg
Si l'utilisateur 1 est un démon dans passwd, c'est ce que ls devrait montrer en tant qu'utilisateur propriétaire du fichier dbus. Avez-vous essayé de réinstaller les tasses? Assurez-vous de sauvegarder / etc / cups en premier.
JEL
Edit: id daemonme donneuid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg