Câu trả lời ngắn:
Bạn không phải chạy thủ công vì nó đã được chạy tự động và đang chạy trong nền, đó là lý do tại sao bạn nhận được thông báo đó.
Nếu bạn muốn dừng daemon và chạy thủ công:
sudo systemctl stop clamav-freshclam.service
chạy thủ công:
sudo freshclam
Điều gì đang xảy ra và làm thế nào để xử lý nó?
Mỗi khi bạn gặp phải một tình huống tương tự, các lỗi như file x has been locked
hoặc Another process is using this file : /path/to/x
bạn có thể sử dụng lsof
lệnh để tìm hiểu quá trình nào đang sử dụng tệp đó, trong trường hợp của bạn nếu bạn chạy:
sudo lsof /var/log/clamav/freshclam.log
Bạn sẽ nhận được một đầu ra như:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
abc 126 user 3wW REG 259,1 100 1048 /var/log/clamav/freshclam.log
Các abc
là tên của quá trình đó đang sử dụng tập tin đó, trong trường hợp của bạn đó là: freshclam
.
Điều đó có nghĩa là freshclam
những gì bạn muốn chạy đã được chạy bởi clamav daemon.
bạn có thể sử dụng less /var/log/clamav/freshclam.log
hoặc các lệnh tương tự để xem những gì đang xảy ra.
Vì vậy, bạn không phải chạy thủ công nữa, đó là một quá trình để tránh mọi xung đột và có nhiều phiên bản của cùng một quy trình làm cùng một việc.
Nếu bạn muốn làm cho nó dừng lại và chạy nó một cách thủ công, sau đó gửi một SIGTERM
quy trình của nó, điều đó cho phép quá trình hoàn thành công việc của nó và đóng lại một cách sạch sẽ, đại loại như:
sudo pkill -15 -x freshclam
- trong trường hợp này
sudo
có thể là cần thiết
- 15: SIGTERM là mặc định
Sau đó chạy thủ công:
sudo freshclam
Tuy nhiên trong trường hợp này bạn có thể sử dụng:
sudo systemctl stop clamav-freshclam.service
để ngăn chặn daemon.
sudo lsof /var/log/clamav/freshclam.log
gì?