Sometimes, clamd dies during its morning maintenance. I've not found any rhyme or reason to this, however it's a pain for me as I use exim4 + exiscan, and this will stop delivering mail if it can't talk to its virus scanner. Bugger.
My current workaround: A cron script that checks to see if the socket is writeable, and if not it stops clamd, then starts it again.
TESTFILE="/var/run/clamd.ctl"
* * * * root [ -w $TESTFILE? || \
(/etc/init.d/clamav-daemon stop; \ /etc/init.d/clamav-daemon start)
Yeah, I know this isn't the prettiest, but I don't have time to track down why its dying just yet -- DanielLawson
A similar script is available at http://mikecathey.com/code/clamdwatch/ and in the contrib/clamdwatch directory -- NERv
Jun 9 10:21:02 firewall amavis[17934?: (17934-02) Clam Antivirus-clamd FAILED - unknown status: /var/lib/amavis/amavis-msg-id/parts: Can't access the file ERROR
clamav-daemon runs as the 'clamav' user (on Debian/Woody anyway), and when amavis unpacks its email for scanning as the 'amavis' user. Add clamav to the amavis group, and restart the clamav daemon.
Another way around this is to run clamav and amavis as the same user. Apparently this change needs to be made for Conectiva Linux.
One page links to ClamAvNotes:
lib/blame.php:177: Warning: Invalid argument supplied for foreach() (...repeated 2 times)
lib/plugin/WlugLicense.php:99: Warning: Invalid argument supplied for foreach()