cupdd przy użyciu 100% procesora, tworząc duży (80 GB +) dziennik błędów

9

Kilka dni temu zdałem sobie sprawę, że moja maszyna Ubuntu nie ładuje się po zalogowaniu. Po kilku kopaniach na LiveCD zdałem sobie sprawę, że mój dysk twardy ma 100% pojemności, więc usunąłem kilka dużych plików i byłem w stanie się zalogować. Nie miałem już uprawnień do sudo i musiałem uruchomić się w trybie odzyskiwania i zmienić sodoery plik, ale ostatecznie odzyskał uprawnienia administratora.

Zauważyłem wtedy, że mój komputer jest trochę powolny i topwyświetlałem cupd przy użyciu 100% procesora. Nigdy wcześniej nie widziałem tego programu, ale wkrótce zdałem sobie sprawę, że był to legalny program.

Usunąłem filmy o wartości około 40 GB, ale tylko po to, by zobaczyć, że moje miejsce na dysku wyczerpuje się prawie natychmiast na moich oczach. Przy odrobinie badań i intuicji zdałem sobie sprawę, że może to być wysadzony plik dziennika, i na pewno ls -lh /var/log/cups/pokazałem mi plik dziennika błędów, który był większy niż 80 GB.

Usunąłem plik sudo rm -rf /var/log/cups/error_log, zabiłem serwis sudo service cups endi poszedłem do firmy. Po tym zdałem sobie sprawę, że dobrym pomysłem byłoby sprawdzenie zawartości dziennika error_log przed jego usunięciem, ale chciałem się go pozbyć, zanim ponownie go zablokuję.

To było wczoraj. Dzisiaj ponownie uruchomiłem laptopa i zobaczyłem, że cupd znowu działa przy 100% procesora, i na pewno widzę wyczerpywanie się miejsca na dysku. Zatrzymałem usługę i uruchomiłem tail -f /var/log/cups/error_log, a są to miliony linii:

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

== EDYCJA =============================================== ==================

ls -l /usr/lib/cups/notifier/dbuspokazuje uprawnienia i własność w odpowiednim -rwxrwxrwx 1 root rootmomencie -rwxr-xr-x 1 daemon root, zgodnie z opisem w komentarzach. sudo chown root:root /usr/lib/cups/notifier/dbusrównież nie naprawił problemów z własnością.

W końcu usunąłem i ponownie zainstalowałem kubki, ale bezskutecznie. Linki te zostały podane jako potencjalnie pomocne przewodniki ( przypadkowo chmod -R na / , przywróć uprawnienia do zmiany ), ale ostatecznie sugerują ponowną instalację samego systemu operacyjnego.

wndg
źródło
Jaka jest wydajność ls -l /usr/lib/cups/notifier/dbus? Miałem podobny problem dawno temu i jedynym łatwym sposobem na rozwiązanie tego problemu było wyłączenie CUPS ... (wtedy nie było drukowania)
Wilf
1
-rwxrwxrwx 1 root 14k 5 września 2014 / usr / lib / notifier / dbus
wndg
1
Co właściwie robią puchary? Mam na myśli to, czy można go wyłączyć bez poważnych konsekwencji ...
wndg
1
Robi większość rzeczy do drukowania, więc bez tego nie można drukować. Myślę, że uprawnienia do pliku powinny być -rwxr-xr-x (to są uprawnienia do mojej instalacji Ubuntu 14.04) , więc możesz być w stanie rozwiązać problem, uruchamiając sudo chmod 755 /usr/lib/cups/notifier/dbus(a następnie ponownie uruchamiając CUP lub komputer).
Wilf
1
Drukujesz jak na papierze? Uprawnienia są teraz -rwxr-xr-xjednak po restarcie cupd nadal działa przy 95% + i tworzeniu dużego pliku dziennika błędów (jednak pozornie nie tak szybko?).
wndg

Odpowiedzi:

16

W przypadku Ubuntu 15.10 działało dla mnie:

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

(Jeśli nie możesz zatrzymać filiżanek, spróbuj):

ps aux | grep cups

Pobierz identyfikator procesu (pid) z danych wyjściowych i:

kill -9 (pid you have learned here)
salihcenap
źródło
2
Zrobiłem to i to pomaga, ale tylko do momentu ponownego uruchomienia komputera. Czy jest jakiś sposób, aby to przetrwało?
tobias_k
1

W Debianie 9

  1. użytkownik @ maszyna: sudo su

  2. root @ machine:

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

powrót:

 ok Ponowne uruchamianie filiżanek przez systemctl cups.service

i zapisz mój log i mój procesor

Nolwennig
źródło
1

po prostu to zrobiłem, działa dla mnie:

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

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

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

zrobione !!!

Avani badheka
źródło
2
Czy mógłbyś skomentować, co to dokładnie robi lub dlaczego rozwiązuje problem?
tobias_k
0

Nie mogę komentować, więc jest to odpowiedź:

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

może pomóc, skoro masz odpowiednie uprawnienia. Kto jest użytkownikiem 1 w twoim systemie? Jeśli nie wiesz, w jaki sposób uprawnienia / własność pliku zostały zmienione w stosunku do wartości domyślnej, przyczyną może być wierzchołek góry lodowej. Jeśli tak, zaleca się ponowną instalację.

JEL
źródło
Uruchomiłem polecenie i uruchomiłem się ponownie i nic nie zmieniło się. Nie wiesz, jak dowiedzieć się, kto jest użytkownikiem 1. Jak myślisz, co może być „resztą góry lodowej”, jak to ująłeś…?
wndg
Użytkownik 1 w nowo zainstalowanym systemie Ubuntu to demon. Zwrócenie polecenia ls -rwxrwxrwx 1 rootzamiast -rwxr-xr-x daemon rootsugerowania uszkodzonych lub brakujących plików systemowych. Użytkownik demona, 1, nie jest powiązany z nazwą w / etc / passwd.
JEL
Właśnie spojrzałem na / etc / passwd, a użytkownik 1 był demonem, ale chyba mówię, że mój problem nie jest z tym związany. Jak zatem dowiedzieć się, kto to jest użytkownik 1?
wndg
Jeśli użytkownik 1 jest demonem w passwd, właśnie to powinien pokazywać jako użytkownik będący właścicielem pliku dbus. Czy próbowałeś ponownie zainstalować kubki? Najpierw wykonaj kopię zapasową pliku / etc / cups.
JEL
Edycja: id daemondaje miuid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg