Auf unserem kürzlich auf Mac OS X 10.6.x aufgerüsteten Server läuft der ClamAV-Service, also der Antiviren-Dienst, nicht mehr. Auf der Suche nach der Ursache fand ich in den Logs die immer wiederkehrende Nachricht: „Throttling, respawn in 10 seconds“. Aber trotz der kurzen und anscheinend endlos wiederholten Startversuche kommt der Dienst nicht auf die Füße. Wissen Sie Rat?
Das Symptom spricht dafür, dass ClamAV noch über einen LaunchDaemon gestartet werden soll, der nach altem Muster für Mac OS X 10.4.x geschrieben worden ist. Die darin verwendete Syntax ist teils veraltet und deshalb wird das Startskript (der LaunchDaemon) immer wieder vom Betriebssystem angehalten. Eine Anpassung an das aktuelle Mac OS X 10.6.x lässt sich aber leicht machen; dafür sind nur zwei Skripte zu editieren. Halten Sie zunächst den ClamAV-Dienst an (Administratorpasswort erforderlich):
sudo launchctl unload -w
/System/Library/LaunchDaemons/org.amavis.amavisd.plist
Editieren Sie dann das Startskript:
sudo pico
/System/Library/LaunchDaemons/org.amavis.amavisd.plist
Ersetzen Sie darin den Schlüssel „OnDemand“ (der ist in 10.6.x obsolet) durch „KeepAlive“ und in der Zeile darunter schalten Sie von „false“ auf „true“ um. Editieren Sie anschließend den Freshclam-Dienst, der die Viren-Signaturen automatisch auffrischt:
sudo launchctl unload -w /System/Library/
LaunchDaemons/org.clamav.freshclam.plist
sudo pico /System/Library/LaunchDaemons/
org.clamav.freshclam.plist
Löschen Sie unter ProgramArguments in der zweiten Zeile alle Zeichen bis auf „-c“; jedes Programmargument muss in einer separaten Zeile übergeben werden. Tragen Sie dann die 1 in einer eigenen, dritten Zeile ein. Nach der Umstellung sollte der Abschnitt so aussehen:
<key>ProgramArguments</key>
<array>
<string>freshclam</string>
<string>-d</string>
<string>-c</string>
<string>1</string>
</array>
Wenn man nach dem Speichern beide LaunchDaemons wieder startet
sudo launchctl load -w
/System/Library/LaunchDaemons/org.amavis.amavisd.plist
sudo launchctl load -w
/System/Library/LaunchDaemons/org.clamav.freshclam.plist
sollten sie fehlerfrei laufen. In den Logs kann man dann unter anderem beobachten, wie org.clamav.freshclam das daily-update holt.