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 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
が必要な場合があります。次に、手動で実行します。
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
お役に立てれば...