web-dev-qa-db-ja.com

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

簡潔な答え:

自動的に実行され、バックグラウンドで実行されているため、手動で実行する必要はありません。そのため、そのメッセージを受け取ります。

デーモンを停止して手動で実行する場合:

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

デーモンを停止します。

59
Ravexina
Sudo /etc/init.d/clamav-freshclam stop
Sudo freshclam
Sudo /etc/init.d/clamav-freshclam start
23
flavio.troja

これは別のオプションかもしれません...

Sudo service clamav-freshclam stop
Sudo freshclam
Sudo service clamav-freshclam start

お役に立てれば...

8
Phd21