cupsd usando 100% da CPU, criando um grande erro (80 GB +)

9

Alguns dias atrás, percebi que minha máquina Ubuntu não carregava após o login. Depois de pesquisar em um liveCD, percebi que meu disco rígido tinha 100% de capacidade, então apaguei alguns arquivos grandes e consegui efetuar login. Não tinha mais permissões de sudo e tive que inicializar no modo de recuperação e alterar os sodoers , mas acabou recuperando as permissões de root.

Percebi então que minha máquina estava um pouco lenta e topestava mostrando o cupsd usando 100% da CPU. Eu nunca vi esse programa antes, mas logo percebi que era um programa legítimo.

Excluí cerca de 40 GB de vídeos, apenas para ver meu espaço em disco esgotar quase instantaneamente diante dos meus olhos. Com um pouco de pesquisa e intuição, percebi que poderia ser um arquivo de log sendo explodido e, com certeza, ls -lh /var/log/cups/me mostrou um arquivo error_log com 80 GB ou mais.

Excluí o arquivo sudo rm -rf /var/log/cups/error_log, encerrei o serviço sudo service cups ende iniciei meus negócios. Percebi depois que seria uma boa ideia verificar o conteúdo de error_log antes de excluí-lo, mas queria me livrar da coisa antes de ser bloqueado novamente.

Isso foi ontem. Hoje, iniciei meu laptop novamente e vi o cupsd rodando novamente a 100% da CPU, e com certeza vejo o meu espaço em disco esgotando. Parei o serviço e executei tail -f /var/log/cups/error_log, e existem milhões de linhas disso:

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/dbusmostra permissões e propriedade como -rwxrwxrwx 1 root rootdeveriam -rwxr-xr-x 1 daemon root, conforme descrito nos comentários. sudo chown root:root /usr/lib/cups/notifier/dbustambém não resolveu os problemas de propriedade.

Finalmente, removi e reinstalei os copos, mas sem sucesso. Esses links foram dados como guias potencialmente úteis ( acidentalmente chmod -R on / , restaura as permissões de chown ), mas acabam resultando em uma reinstalação do próprio sistema operacional.

wndg
fonte
Qual é a saída de ls -l /usr/lib/cups/notifier/dbus? Eu tive um problema semelhante há muito tempo e a única maneira fácil de resolver era para desativar CUPS ... (sem imprimir então)
Wilf
1
-rwxrwxrwx 1 root 14k Sep 5 2014 / usr / lib / notifier / dbus
wndg
1
O que os copos fazem afinal? Quero dizer, se ele pode ser desativado sem repercussão séria ....
wndg
1
Ele faz a maior parte do material para impressão; portanto, sem ele, você não pode imprimir. Eu acho que as permissões no arquivo devem ser -rwxr-xr-x (que são as permissões na minha instalação do Ubuntu 14.04) , para que você possa corrigir o problema executando sudo chmod 755 /usr/lib/cups/notifier/dbus(e reiniciando CUPs ou o computador).
Wilf
1
Imprimindo como no papel de impressão? As permissões são agora, -rwxr-xr-xno entanto, após a reinicialização do cupsd, ainda é executado a 95% + e a criação de um grande arquivo error_log (embora aparentemente não tão rapidamente?).
Wndg

Respostas:

16

Para o Ubuntu 15.10, o que funcionou para mim foi:

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

(Se você não conseguir parar os copos, tente):

ps aux | grep cups

Obtenha o ID do processo (pid) da saída e:

kill -9 (pid you have learned here)
salihcenap
fonte
2
Fiz isso e ajuda, mas apenas até reiniciar o PC. Existe alguma maneira de fazer isso durar?
Tobias_k
1

No Debian 9

  1. usuário @ máquina: sudo su

  2. root @ máquina:

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

Retorna:

 ok Reiniciando os copos via systemctl cups.service

e salve meu log e minha cpu

Nolwennig
fonte
1

simplesmente fiz isso, está funcionando para mim:

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

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

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

pronto !!!

Avani badheka
fonte
2
Você poderia comentar o que exatamente isso faz ou por que resolve o problema?
Tobias_k
0

Não posso comentar, portanto, isso está na forma de uma resposta:

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

pode ajudar, agora que você tem as permissões corretas. Quem é o usuário 1 no seu sistema? Se você não souber como as permissões / propriedade do arquivo foram alteradas do padrão, o problema pode ser a ponta de um iceberg. Nesse caso, é recomendável reinstalar.

JEL
fonte
Executei o comando e reiniciei e nada parecia mudar. Não sabe como descobrir quem é o usuário 1. O que você acha que poderia ser "o resto do iceberg", como você diz ...?
Wndg 16/07/2015
O usuário 1 em um sistema Ubuntu recém-instalado é daemon. O comando ls retornado, -rwxrwxrwx 1 rootem vez de, -rwxr-xr-x daemon rootsugere arquivos de sistema corrompidos ou ausentes. O usuário do daemon, 1, não está associado a um nome em / etc / passwd.
JEL
Acabei de olhar para / etc / passwd e o usuário 1 era daemon, mas acho que você diz que meu problema não está associado a isso. Como eu descobriria quem é o usuário 1?
wndg 16/07/2015
Se o usuário 1 for daemon no passwd, é isso que o ls deve mostrar como o proprietário do arquivo dbus. Você já tentou reinstalar copos? Certifique-se de fazer backup de / etc / cups primeiro.
JEL
Edit: id daemongives meuid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg