cupsd sử dụng CPU 100%, tạo error_log lớn (80GB +)


9

Vài ngày trước tôi nhận ra máy Ubuntu của mình sẽ không tải sau khi đăng nhập. Sau khi tìm hiểu kỹ về liveCD, tôi nhận ra ổ cứng của mình có dung lượng 100%, vì vậy tôi đã xóa một số tệp lớn và có thể đăng nhập. Tôi không còn quyền sudo nữa và phải khởi động vào chế độ khôi phục và thay đổi sodoers tập tin, nhưng cuối cùng đã phục hồi quyền root.

Sau đó tôi nhận thấy máy của tôi hơi chậm chạp và topđang hiển thị cupsd bằng CPU 100%. Tôi chưa bao giờ thấy chương trình này trước đây nhưng tôi sớm nhận ra đây là một chương trình hợp pháp.

Tôi đã xóa các video trị giá khoảng 40 GB, chỉ để thấy không gian ổ đĩa của tôi cạn kiệt gần như ngay lập tức trước mắt tôi. Với một chút nghiên cứu và trực giác, tôi nhận ra đó có thể là một tệp nhật ký đang bị nổ tung, và chắc chắn đã ls -lh /var/log/cups/cho tôi thấy một tệp error_log có dung lượng lớn hơn 80GB.

Tôi đã xóa tập tin sudo rm -rf /var/log/cups/error_log, giết dịch vụ sudo service cups endvà tiếp tục công việc của mình. Sau đó tôi nhận ra rằng nên kiểm tra nội dung của error_log trước khi tôi xóa nó, nhưng tôi muốn thoát khỏi điều đó trước khi tôi bị khóa lại.

Đó là ngày hôm qua. Hôm nay, tôi khởi động lại máy tính xách tay của mình và thấy cupsd chạy lại ở mức 100% cpu và chắc chắn tôi thấy không gian đĩa của mình bị cạn kiệt. Tôi đã dừng dịch vụ và chạy tail -f /var/log/cups/error_log, và có hàng triệu dòng này:

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

== CHỈNH SỬA =============================================== ==================

ls -l /usr/lib/cups/notifier/dbushiển thị quyền và quyền sở hữu như -rwxrwxrwx 1 root rootkhi chúng cần -rwxr-xr-x 1 daemon root, như được mô tả trong các bình luận. sudo chown root:root /usr/lib/cups/notifier/dbuscũng không khắc phục vấn đề sở hữu.

Cuối cùng tôi gỡ bỏ và cài đặt lại cốc, nhưng vô ích. Các liên kết này được cung cấp dưới dạng hướng dẫn có khả năng hữu ích, ( vô tình chmod -R bật / , khôi phục quyền truy cập chown ) nhưng cuối cùng chúng dẫn đến việc đề xuất cài đặt lại hệ điều hành.


Đầu ra của là ls -l /usr/lib/cups/notifier/dbusgì? Tôi đã có một vấn đề tương tự cách đây rất lâu và cách dễ dàng duy nhất để giải quyết nó là vô hiệu hóa CUPS ... (sau đó không in)
Wilf

1
-rwxrwxrwx 1 root 14k ngày 5 tháng 9 năm 2014 / usr / lib / notifier / dbus
wndg

1
Cốc làm gì? Ý tôi là nếu nó có thể bị vô hiệu hóa mà không gây hậu quả nghiêm trọng ....
wndg

1
Nó thực hiện hầu hết các công cụ để in, vì vậy không có nó, bạn không thể in. Tôi nghĩ rằng các quyền trên tệp phải là -rwxr-xr-x (đó là quyền của cài đặt Ubuntu 14.04 của tôi) , vì vậy bạn có thể khắc phục sự cố bằng cách chạy sudo chmod 755 /usr/lib/cups/notifier/dbus(và sau đó khởi động lại CUP hoặc máy tính).
Wilf

1
In như trong giấy in? -rwxr-xr-xTuy nhiên, các quyền bây giờ sau khi khởi động lại cupsd vẫn chạy ở mức 95% + và tạo tệp error_log lớn (tuy nhiên dường như không nhanh như vậy?).
wndg

Câu trả lời:


16

Đối với Ubuntu 15.10, những gì làm việc cho tôi là:

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

(Nếu bạn không thể dừng cốc thử):

ps aux | grep cups

Nhận id quá trình (pid) từ đầu ra và:

kill -9 (pid you have learned here)

2
Tôi đã làm điều này và nó giúp, nhưng chỉ cho đến khi tôi khởi động lại PC. Có cách nào để làm điều này cuối cùng?
tobias_k

1

Trên Debian 9

  1. người dùng @ máy: sudo su

  2. máy root @:

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

trở về:

 ok Khởi động lại cốc qua systemctl cup.service

và lưu nhật ký của tôi và cpu của tôi


1

chỉ cần thực hiện nó, nó làm việc cho tôi:

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

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

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

thực hiện nó !!!


2
Bạn có thể vui lòng bình luận chính xác những gì nó làm, hoặc tại sao nó giải quyết vấn đề?
tobias_k

0

Tôi không thể bình luận, vì vậy đây là dưới dạng một câu trả lời:

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

có thể giúp đỡ, bây giờ bạn có quyền. Ai là người dùng 1 trên hệ thống của bạn? Nếu bạn không biết làm thế nào quyền / quyền sở hữu của tệp được thay đổi từ mặc định, vấn đề có thể là phần nổi của tảng băng chìm. Nếu vậy, cài đặt lại sẽ được khuyến khích.


Tôi chạy lệnh và khởi động lại và dường như không có gì thay đổi. Không chắc chắn làm thế nào để tìm ra người dùng 1 là ai. Bạn nghĩ gì có thể là "phần còn lại của tảng băng trôi" khi bạn đặt nó ...?
wndg 16/07/2015

Người dùng 1 trên hệ thống Ubuntu mới được cài đặt là daemon. Rằng lệnh ls của bạn được trả về -rwxrwxrwx 1 roottrái ngược với -rwxr-xr-x daemon rootđề xuất các tệp hệ thống bị hỏng hoặc bị thiếu. Người dùng daemon, 1, không được liên kết với một tên trong / etc / passwd.
JEL 16/07/2015

Tôi chỉ xem / etc / passwd và người dùng 1 là daemon, nhưng tôi đoán bạn nói rằng vấn đề của tôi không liên quan đến điều đó. Làm thế nào tôi tìm được người dùng 1 sau đó?
wndg 16/07/2015

Nếu người dùng 1 là daemon trong passwd, đó là những gì ls sẽ hiển thị khi người dùng sở hữu tệp dbus. Bạn đã thử cài đặt lại cốc? Hãy chắc chắn sao lưu / etc / cup trước.
JEL 16/07/2015

Chỉnh sửa: id daemoncho tôiuid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg 16/07/2015
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.