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


49

我已经安装了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 lsof /var/log/clamav/freshclam.log什么?
Ravexina

1
因此,无需运行它,它已自动启动。
Ravexina '17

@Ravexina不需要运行什么?
laukok

1
sudo freshclam
Ravexina

1
我想它应该是更新过程的日志,所以没有害处...它只是添加了正在对该文件进行的操作。
Ravexina

Answers:


63

简短答案:

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

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

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

这意味着freshclamclamav守护程序已经运行了您要运行的程序。

您可以使用less /var/log/clamav/freshclam.log或类似的命令来查看发生了什么。

因此,您不必再手动运行它,这是一个避免冲突的过程,并且可以使同一进程的多个实例同时执行同一操作。

如果要使其停止并手动运行,然后将SIGTERM其发送到其进程,这将使该进程有机会完成其工作并干净地自行关闭,例如:

sudo pkill -15 -x freshclam
  • 在这种情况下sudo可能是必要的。
  • 15:SIGTERM是默认值

然后手动运行它:

sudo freshclam

但是,在这种情况下,您可以使用:

sudo systemctl stop clamav-freshclam.service

停止守护程序。


重新启动后,守护程序会再次启动吗?如果是这样,您知道预防这种情况的最佳方法吗?谢谢。
约书亚·品特

sudo systemctl disable clamav-freshclam.service可能是这样。
Ravexina

谢谢,如果它再次弹出,我会尝试一下。
约书亚·品特

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

8

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

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

希望这可以帮助...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.