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

@Ravexina ไม่จำเป็นต้องเรียกใช้อะไร
laukok

1
sudo freshclam
Ravexina

1
ฉันคิดว่ามันควรจะเป็นบันทึกของกระบวนการอัปเดตดังนั้นจึงไม่เป็นอันตราย ... มันแค่เพิ่มสิ่งที่เกิดขึ้นกับไฟล์นั้น
Ravexina

คำตอบ:


63

คำตอบสั้น ๆ :

คุณไม่จำเป็นต้องเรียกใช้ด้วยตนเองเพราะมันถูกเรียกใช้โดยอัตโนมัติและทำงานในพื้นหลังนั่นเป็นสาเหตุที่คุณได้รับข้อความนั้น

หากคุณต้องการหยุด daemon และรันด้วยตนเอง:

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

เป็นชื่อของกระบวนการที่จะใช้ไฟล์นั้นในกรณีของคุณมันเป็น:abcfreshclam

นั่นหมายความว่าfreshclamคุณต้องการเรียกใช้แล้วโดย clamav daemons

คุณสามารถใช้less /var/log/clamav/freshclam.logหรือคำสั่งที่คล้ายกันเพื่อดูว่าเกิดอะไรขึ้น

ดังนั้นคุณไม่ต้องเรียกใช้ด้วยตนเองอีกต่อไปมันเป็นกระบวนการที่จะหลีกเลี่ยงความขัดแย้งและมีอินสแตนซ์หลายขั้นตอนของกระบวนการเดียวกันที่ทำสิ่งเดียวกันในเวลาเดียวกัน

หากคุณต้องการให้หยุดและเรียกใช้ด้วยตนเองจากนั้นส่ง a SIGTERMไปยังกระบวนการที่ให้โอกาสในการทำงานให้เสร็จและปิดตัวเองอย่างหมดจดเช่น:

sudo pkill -15 -x freshclam
  • ในกรณีนี้sudoอาจจำเป็น
  • 15: SIGTERM เป็นค่าเริ่มต้น

จากนั้นเรียกใช้ด้วยตนเอง:

sudo freshclam

อย่างไรก็ตามในกรณีนี้คุณสามารถใช้:

sudo systemctl stop clamav-freshclam.service

เพื่อหยุดภูต


daemon จะเริ่มทำงานอีกครั้งหลังจากรีบูตหรือไม่ ถ้าเป็นเช่นนั้นคุณรู้วิธีที่ดีที่สุดในการป้องกันหรือไม่ ขอบคุณ
Joshua Pinter

sudo systemctl disable clamav-freshclam.serviceอาจเป็นวิธี
Ravexina

ขอบคุณฉันจะลองดูถ้ามันกลับมาอีกครั้ง
Joshua Pinter


8

นี่อาจเป็นตัวเลือกอื่นสำหรับสิ่งนี้ ...

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

หวังว่านี่จะช่วย ...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.