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

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

答案1

简短回答:

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

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

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 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

停止守护进程。

答案2

sudo /etc/init.d/clamav-freshclam stop
sudo freshclam
sudo /etc/init.d/clamav-freshclam start

答案3

这可能是另一种选择......

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

希望这可以帮助...

答案4

只需测试 freshclam 的状态即可

sudo service clamav-freshclam status

如果运行正常(应该显示active, (running)),你不需要做任何事情

相关内容