我已经安装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
简短的回答:
您不必手动运行它,因为它已自动运行并在后台运行,这就是您收到该消息的原因。
如果要停止守护程序并手动运行它:
手动运行它:
发生了什么以及如何处理?
每次当你遇到类似的情况时,
file x has been locked
你Another process is using this file : /path/to/x
可以使用lsof
命令来找出哪个进程正在使用该文件,如果你运行:您应该得到如下输出:
这
abc
是使用该文件的进程的名称,在您的情况下是:freshclam
。这意味着
freshclam
您要运行的已由 clamav 守护程序运行。您可以使用
less /var/log/clamav/freshclam.log
或类似的命令来查看发生了什么。所以你不必再手动运行它,这是一个避免任何冲突的过程,并且同一进程的多个实例同时做同样的事情。
如果您想让它停止并手动运行它,然后向其
SIGTERM
进程发送一个,这使该进程有机会完成其工作并干净地关闭自己,例如:sudo
可能是必要的。然后手动运行它:
但是在这种情况下,您可以使用:
停止守护进程。
这可能是另一种选择...
希望这可以帮助...
也许这是对这个问题最简单的答案:
sudo su clamav freshclam
显然,
freshclam
已经与clamav
用户一起运行(如sudo lsof /var/log/clamav/freshclam.log
告诉我们的那样)。以该用户名再次调用它以唤醒它并更新数据库。然后检查成功...sudo less /var/log/clamav/freshclam.log