89 votes

clamav - ERREUR : /var/log/clamav/freshclam.log est verrouillé par un autre processus ?

J'ai installé clamav et je veux mettre à jour les fichiers qu'il utilise pour identifier les 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).

Que dois-je faire avec cette erreur ?

EDIT。

$ 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

126voto

Ravexina Points 50599

Réponse courte :

Vous n'avez pas besoin de l'exécuter manuellement car il a été lancé automatiquement et fonctionne en arrière-plan, c'est pourquoi vous recevez ce message.

Si vous voulez arrêter le démon et l'exécuter manuellement :

sudo systemctl stop clamav-freshclam.service

l'exécuter manuellement :

sudo freshclam

Que se passe-t-il et comment y faire face ?

Chaque fois que vous vous retrouvez dans une situation similaire, des erreurs telles que file x has been locked ou Another process is using this file : /path/to/x vous pouvez utiliser le lsof pour savoir quel processus utilise ce fichier, dans votre cas si vous exécutez :

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

Vous devriez obtenir une sortie comme :

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

El abc est le nom du processus qui utilise ce fichier, dans votre cas c'est : freshclam .

Cela signifie que freshclam que vous voulez exécuter a déjà été exécuté par les démons de clamav.

vous pouvez utiliser less /var/log/clamav/freshclam.log ou des commandes similaires pour voir ce qui se passe.

Ainsi, vous n'avez plus besoin de l'exécuter manuellement, c'est un processus pour éviter tout conflit et avoir plusieurs instances d'un même processus faisant la même chose en même temps.

Si vous voulez l'arrêter et l'exécuter manuellement, alors envoyez un SIGTERM à son processus, qui donne au processus une chance de finir son travail et de se fermer proprement, quelque chose comme :

sudo pkill -15 -x freshclam
  • dans ce cas sudo peut être nécessaire.
  • 15 : SIGTERM est la valeur par défaut

Ensuite, exécutez-le manuellement :

sudo freshclam

Cependant, dans ce cas, vous pouvez utiliser :

sudo systemctl stop clamav-freshclam.service

pour arrêter le démon.

27voto

flavio.troja Points 409
sudo /etc/init.d/clamav-freshclam stop
sudo freshclam
sudo /etc/init.d/clamav-freshclam start

14voto

Phd21 Points 181

Cela pourrait être une autre option pour ce...

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

J'espère que cela vous aidera...

0voto

BurninLeo Points 154

C'est peut-être la réponse la plus simple à la question :

sudo su clamav freshclam

Évidemment, freshclam est déjà en cours d'exécution avec le clamav utilisateur (comme sudo lsof /var/log/clamav/freshclam.log nous dit). Appelez-le à nouveau au nom de cet utilisateur pour le réveiller et mettre à jour la base de données. Puis pour vérifier le succès...

sudo less /var/log/clamav/freshclam.log

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X