当前位置: 首页>>技术教程>>正文


malware – clamav-错误:/var/log/clamav/freshclam.log被另一个进程锁定了吗?

, ,

问题描述

我已经安装了clamav,并且想要更新用于识别病毒的文件:

$ sudo freshclam

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

我应该怎么处理这个错误?

编辑:

$ 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

最佳方法

简短答案:

您不必手动运行它,因为它已经自动运行并且在后台运行,这就是为什么您会收到该消息的原因。

如果要停止守护程序并手动运行它:

sudo systemctl stop clamav-freshclam.service

手动运行它:

sudo freshclam

发生了什么以及如何处理?

每次遇到类似情况时,都会出现诸如file x has been lockedAnother 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 NAME
abc       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 stop
sudo freshclam
sudo /etc/init.d/clamav-freshclam start

第三种方法

这可能是为此的另一种选择…

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

希望这可以帮助…

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8907.html,未经允许,请勿转载。