clamav - ERROR: /var/log/clamav/freshclam.log dikunci oleh proses lain?

49

Saya telah menginstal clamavdan saya ingin memperbarui file yang digunakannya untuk mengidentifikasi virus:

$ sudo freshclam

ERROR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

Apa yang harus saya lakukan dengan kesalahan ini?

SUNTING:

$ sudo lsof /var/log/clamav/freshclam.log

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
freshclam 866 clamav    3wW  REG  259,1   100134 10486045 /var/log/clamav/freshclam.log
laukok
sumber
Apa output dari sudo lsof /var/log/clamav/freshclam.log?
Ravexina
1
Jadi tidak perlu menjalankannya, secara otomatis sudah dimulai.
Ravexina
@Ravexina tidak perlu menjalankan apa?
laukok
1
sudo freshclam
Ravexina
1
Saya kira itu harus menjadi log proses pembaruan, jadi tidak ada salahnya ... itu hanya menambahkan apa yang terjadi pada file itu.
Ravexina

Jawaban:

64

Jawaban singkat:

Anda tidak harus menjalankannya secara manual karena telah dijalankan secara otomatis dan berjalan di latar belakang, itulah sebabnya Anda menerima pesan itu.

Jika Anda ingin menghentikan daemon dan menjalankannya secara manual:

sudo systemctl stop clamav-freshclam.service

jalankan secara manual:

sudo freshclam

Apa yang terjadi dan bagaimana cara menanganinya?

Setiap kali ketika Anda menemukan situasi yang serupa, kesalahan seperti file x has been lockedatau Another process is using this file : /path/to/xAnda dapat menggunakan lsofperintah untuk mengetahui proses mana yang menggunakan file itu, dalam kasus Anda jika Anda menjalankan:

sudo lsof /var/log/clamav/freshclam.log

Anda harus mendapatkan output seperti:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
abc       126   user   3wW  REG  259,1  100          1048 /var/log/clamav/freshclam.log

The abcadalah nama dari proses yang menggunakan file itu, dalam kasus Anda itu: freshclam.

Itu artinya freshclamyang ingin Anda jalankan sudah dijalankan oleh clamav daemon.

Anda dapat menggunakan less /var/log/clamav/freshclam.logatau perintah serupa untuk melihat apa yang terjadi.

Jadi Anda tidak perlu menjalankannya secara manual lagi, ini adalah proses untuk menghindari konflik dan memiliki banyak instance dari proses yang sama melakukan hal yang sama pada saat yang sama.

Jika Anda ingin menghentikannya dan menjalankannya secara manual, maka kirim SIGTERMprosesnya, yang memberikan proses kesempatan untuk menyelesaikan pekerjaannya dan menutup sendiri dengan bersih, seperti:

sudo pkill -15 -x freshclam
  • dalam hal ini sudomungkin diperlukan.
  • 15: SIGTERM adalah default

Kemudian jalankan secara manual:

sudo freshclam

Namun dalam hal ini Anda dapat menggunakan:

sudo systemctl stop clamav-freshclam.service

untuk menghentikan daemon.

Ravexina
sumber
Akankah daemon mulai lagi setelah reboot? Jika demikian, apakah Anda tahu cara terbaik untuk mencegahnya? Terima kasih.
Joshua Pinter
sudo systemctl disable clamav-freshclam.servicemungkin jalannya.
Ravexina
Terima kasih, saya akan mencobanya jika muncul kembali.
Joshua Pinter
24
sudo /etc/init.d/clamav-freshclam stop
sudo freshclam
sudo /etc/init.d/clamav-freshclam start
flavio.troja
sumber
8

Ini mungkin opsi lain untuk ini ...

sudo service clamav-freshclam stop
sudo freshclam
sudo service clamav-freshclam start

Semoga ini membantu...

Phd21
sumber