clamav - ERRO: /var/log/clamav/freshclam.log está bloqueado por outro processo?

49

Eu instalei clamave quero atualizar os arquivos que ele usa para identificar vírus:

$ sudo freshclam

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

O que devo fazer com esse erro?

EDITAR:

$ 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
fonte
Qual é a saída de sudo lsof /var/log/clamav/freshclam.log?
Ravexina
1
Portanto, não há necessidade de executá-lo, ele foi iniciado automaticamente.
Ravexina
@Ravexina não é necessário executar o quê?
precisa saber é
1
sudo freshclam
Ravexina
1
Eu acho que deveria ser o processo de log de atualização, então não faz mal ... apenas adiciona o que está acontecendo com esse arquivo.
Ravexina

Respostas:

64

Resposta curta:

Você não precisa executá-lo manualmente porque ele foi executado automaticamente e está sendo executado em segundo plano; é por isso que você recebe essa mensagem.

Se você deseja parar o daemon e executá-lo manualmente:

sudo systemctl stop clamav-freshclam.service

execute-o manualmente:

sudo freshclam

O que está acontecendo e como lidar com isso?

Toda vez que você se deparar com situações semelhantes, erros como file x has been lockedou Another process is using this file : /path/to/xvocê pode usar o lsofcomando para descobrir qual processo está usando esse arquivo, no seu caso, se você executar:

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

Você deve obter uma saída como:

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

O abcé o nome do processo que está usando esse arquivo, no seu caso, é: freshclam.

Isso significa freshclamque você deseja executar já foi executado por clamav daemons.

você pode usar less /var/log/clamav/freshclam.logcomandos semelhantes para ver o que está acontecendo.

Portanto, você não precisa mais executá-lo manualmente, é um processo para evitar conflitos e ter várias instâncias de um mesmo processo fazendo a mesma coisa ao mesmo tempo.

Se você deseja fazê-lo parar e executá-lo manualmente, envie um SIGTERMpara seu processo, que dará ao processo a chance de concluir seu trabalho e se fechar de maneira limpa, algo como:

sudo pkill -15 -x freshclam
  • neste caso, sudopode ser necessário.
  • 15: SIGTERM é o padrão

Em seguida, execute-o manualmente:

sudo freshclam

No entanto, neste caso, você pode usar:

sudo systemctl stop clamav-freshclam.service

para parar o daemon.

Ravexina
fonte
O daemon será iniciado novamente após uma reinicialização? Se sim, você sabe a melhor maneira de evitar isso? Obrigado.
Joshua Pinter
sudo systemctl disable clamav-freshclam.servicepode ser o caminho.
Ravexina 01/10
Obrigado, tentarei isso se ele aparecer novamente.
Joshua Pinter
24
sudo /etc/init.d/clamav-freshclam stop
sudo freshclam
sudo /etc/init.d/clamav-freshclam start
flavio.troja
fonte
8

Essa pode ser outra opção para isso ...

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

Espero que isto ajude...

Phd21
fonte