Clamav - ОШИБКА: /var/log/clamav/freshclam.log заблокирован другим процессом?

Я установил clamav и я хочу обновить файлы, которые он использует для выявления вирусов:

$ sudo freshclamERROR: /var/log/clamav/freshclam.log is locked by another processERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

Что мне делать с этой ошибкой?

РЕДАКТИРОВАТЬ:

$ sudo lsof /var/log/clamav/freshclam.logCOMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF     NODE NAMEfreshclam 866 clamav    3wW  REG  259,1   100134 10486045 /var/log/clamav/freshclam.log

Короткий ответ:

Вам не нужно запускать его вручную, потому что он был запущен автоматически и работает в фоновом режиме, вот почему вы получаете это сообщение.

Если вы хотите остановить демон и запустить его вручную:

sudo systemctl stop clamav-freshclam.service

запустите его вручную:

sudo freshclam

Что происходит и как с этим справиться?

Каждый раз, когда вы сталкиваетесь с подобными ситуациями, такие ошибки, как file x has been locked или Another process is using this file : /path/to/x Вы можете использовать lsof команда, чтобы узнать, какой процесс использует этот файл, в вашем случае, если вы запустите:

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

Вы должны получить результат, подобный:

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

То abc это имя процесса, который использует этот файл, в вашем случае это: freshclam.

Это означает freshclam который вы хотите запустить, уже запущен демонами clamav.

Вы можете использовать less /var/log/clamav/freshclam.log или аналогичные команды, чтобы увидеть, что происходит.

Таким образом, вам больше не нужно запускать его вручную, это процесс, позволяющий избежать любых конфликтов и одновременного выполнения нескольких экземпляров одного и того же процесса.

Если вы хотите остановить его и запустить вручную, затем отправьте SIGTERM к своему процессу, что дает процессу шанс завершить свою работу и полностью закрыться, что-то вроде:

sudo pkill -15 -x freshclam
  • в этом случае sudo может потребоваться.
  • 15: SIGTERM используется по умолчанию

Затем запустите его вручную:

sudo freshclam

Однако в этом случае вы можете использовать:

sudo systemctl stop clamav-freshclam.service

чтобы остановить демона.

sudo /etc/init.d/clamav-остановка freshclam
sudo freshclam
sudo /etc/init.d/clamav-новый старт clam

Это может быть еще один вариант для этого...

sudo service clamav-freshclam stopsudo freshclamsudo service clamav-freshclam start

Надеюсь, это поможет...