cupsd menggunakan CPU 100%, membuat error_log besar (80GB +)

9

Beberapa hari yang lalu saya menyadari mesin Ubuntu saya tidak mau memuat setelah login. Setelah beberapa penggalian di liveCD saya menyadari HDD saya berada pada kapasitas 100%, jadi saya menghapus beberapa file besar dan dapat login. Saya tidak memiliki izin sudo lagi dan harus boot ke mode pemulihan dan mengubah sodoers file, tetapi akhirnya memulihkan izin root.

Saya kemudian melihat mesin saya agak lamban, dan topmenunjukkan cupsd menggunakan CPU 100%. Saya belum pernah melihat program ini sebelumnya tetapi saya segera menyadari bahwa itu adalah program yang sah.

Saya menghapus video senilai sekitar 40GB, hanya untuk melihat ruang drive saya hampir habis secara instan di depan mata saya. Dengan sedikit riset dan intuisi, saya menyadari itu mungkin file log yang sedang meledak, dan tentu saja ls -lh /var/log/cups/menunjukkan kepada saya file error_log yang 80GB + besar.

Saya menghapus file sudo rm -rf /var/log/cups/error_log, mematikan layanan sudo service cups end, dan melanjutkan bisnis saya. Saya menyadari setelah itu akan menjadi ide yang bagus untuk memeriksa isi error_log sebelum saya menghapusnya, tetapi saya ingin menyingkirkannya sebelum saya dikunci lagi.

Itu kemarin. Hari ini, saya memulai laptop saya lagi dan melihat cupsd berjalan lagi pada 100% cpu, dan tentu saja saya melihat ruang disk saya menipis. Saya menghentikan layanan dan menjalankan tail -f /var/log/cups/error_log, dan ada jutaan baris ini:

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

== Sunting =============================================== ==================

ls -l /usr/lib/cups/notifier/dbusmenunjukkan izin dan kepemilikan sebagaimana -rwxrwxrwx 1 root rootmestinya -rwxr-xr-x 1 daemon root, sebagaimana dijelaskan dalam komentar. sudo chown root:root /usr/lib/cups/notifier/dbusjuga tidak memperbaiki masalah kepemilikan.

Akhirnya saya melepas dan menginstal ulang cangkir, tetapi tidak berhasil. Tautan ini diberikan sebagai panduan yang berpotensi membantu, ( secara tidak sengaja chmod -R on / , mengembalikan izin chown ) tetapi akhirnya menghasilkan saran untuk menginstal ulang OS itu sendiri.

wndg
sumber
Apa output dari ls -l /usr/lib/cups/notifier/dbus? Saya memiliki masalah yang sama sejak lama dan satu-satunya cara mudah untuk menyelesaikannya adalah dengan menonaktifkan CUPS ... (tidak ada pencetakan)
Wilf
1
-rwxrwxrwx 1 root 14k 5 Sep 2014 / usr / lib / notifier / dbus
wndg
1
Apa sih yang dilakukan gelas? Maksud saya jika itu dapat dinonaktifkan tanpa dampak serius ....
wndg
1
Itu melakukan sebagian besar hal untuk dicetak, jadi tanpanya Anda tidak dapat mencetak. Saya pikir izin pada file harus -rwxr-xr-x (itulah izin pada Ubuntu 14,04 instal saya) , jadi Anda mungkin dapat memperbaiki masalah dengan menjalankan sudo chmod 755 /usr/lib/cups/notifier/dbus(dan kemudian restart CUP atau komputer).
Wilf
1
Mencetak seperti pada kertas cetak? Izin sekarang -rwxr-xr-xnamun setelah restart cupsd masih berjalan pada 95% + dan membuat file error_log besar (namun tampaknya tidak secepat itu?).
wndg

Jawaban:

16

Untuk Ubuntu 15.10 yang berhasil bagi saya adalah:

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

(Jika Anda tidak dapat menghentikan cangkir, cobalah):

ps aux | grep cups

Dapatkan id proses (pid) dari output dan:

kill -9 (pid you have learned here)
salihcenap
sumber
2
Saya melakukan ini dan itu membantu, tetapi hanya sampai saya me-restart PC saya. Apakah ada cara untuk membuat ini bertahan lama?
tobias_k
1

Pada Debian 9

  1. pengguna @ mesin: sudo su

  2. root @ mesin:

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

kembali:

 ok Memulai ulang cangkir melalui systemctl cups.service

dan simpan log dan cpu saya

Nolwennig
sumber
1

cukup lakukan itu, ini bekerja untuk saya:

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

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

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

berhasil !!!

Avani badheka
sumber
2
Bisakah Anda berkomentar apa tepatnya yang dilakukannya, atau mengapa ini memecahkan masalah?
tobias_k
0

Saya tidak dapat berkomentar, jadi ini dalam bentuk jawaban:

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

mungkin membantu, sekarang Anda memiliki izin yang benar. Siapa pengguna 1 di sistem Anda? Jika Anda tidak tahu bagaimana izin / kepemilikan file diubah dari default, masalahnya mungkin adalah puncak gunung es. Jika demikian, menginstal ulang akan disarankan.

JEL
sumber
Saya menjalankan perintah dan memulai kembali dan sepertinya tidak ada yang berubah. Tidak yakin bagaimana mencari tahu siapa pengguna 1 itu. Menurut Anda apa yang bisa menjadi "sisa gunung es" seperti yang Anda katakan ...?
wndg
Pengguna 1 pada sistem Ubuntu yang baru diinstal adalah daemon. Perintah ls Anda dikembalikan -rwxrwxrwx 1 rootsebagai lawan -rwxr-xr-x daemon rootmenyarankan file sistem yang rusak atau hilang. Pengguna daemon, 1, tidak dikaitkan dengan nama di / etc / passwd.
JEL
Saya baru saja melihat / etc / passwd dan pengguna 1 adalah daemon, tapi saya kira Anda mengatakan masalah saya tidak terkait dengan itu. Bagaimana saya menemukan pengguna 1 itu?
wndg
Jika pengguna 1 adalah daemon di passwd, itu yang harus ditunjukkan oleh ls sebagai pengguna yang memiliki file dbus. Sudahkah Anda mencoba memasang kembali gelas? Pastikan untuk mencadangkan / etc / cups terlebih dahulu.
JEL
Sunting: id daemonberi sayauid=1(daemon) gid=1(daemon) groups=1(daemon)
wndg