#!/bin/bash # # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1 # # The contents of this file are subject to the Mozilla Public License # Version 1.1 ("License"); you may not use this file except in # compliance with the License. You may obtain a copy of the License at # http://www.zimbra.com/license # # Software distributed under the License is distributed on an "AS IS" # basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See # the License for the specific language governing rights and limitations # under the License. # # The Original Code is: Zimbra Collaboration Suite Server. # # The Initial Developer of the Original Code is Zimbra, Inc. # Portions created by Zimbra are Copyright (C) 2005, 2006 Zimbra, Inc. # All Rights Reserved. # # Contributor(s): # # ***** END LICENSE BLOCK ***** # if [ x`whoami` != xzimbra ]; then echo Error: must be run as zimbra user exit 1 fi platform=`/opt/zimbra/libexec/get_plat_tag.sh` source `dirname $0`/zmshutil || exit 1 zmsetvars \ zimbra_home \ zimbra_log_directory rewriteconfig() { /opt/zimbra/libexec/zmmtaconfig antivirus > /dev/null 2>&1 } # # Main # case "$1" in 'start') if [ -f /opt/zimbra/log/clamd.pid ]; then cpid=`cat /opt/zimbra/log/clamd.pid` kill -0 "$cpid" 2> /dev/null if [ $? -eq 0 ]; then echo "Clamd already running"; exit 0 else rm -f /opt/zimbra/log/clamd.pid fi fi if [ ! -f ${zimbra_home}/clamav/db/daily.cvd ]; then # Start with the files we ship. cp -f ${zimbra_home}/clamav/db/daily.cvd.init \ ${zimbra_home}/clamav/db/daily.cvd cp -f ${zimbra_home}/clamav/db/main.cvd.init \ ${zimbra_home}/clamav/db/main.cvd # Init the db ${zimbra_home}/clamav/bin/freshclam \ --config-file=${zimbra_home}/conf/freshclam.conf & fi if [ x$2 = "x" ]; then rewriteconfig fi ${zimbra_home}/clamav/bin/freshclam \ --config-file=${zimbra_home}/conf/freshclam.conf -d --checks=12 \ >> ${zimbra_log_directory}/freshclam.log 2>&1 & ${zimbra_home}/clamav/sbin/clamd \ --config-file ${zimbra_home}/conf/clamd.conf \ >> ${zimbra_log_directory}/clamd.log 2>&1 & ;; 'kill') if [ -f /opt/zimbra/log/freshclam.pid ]; then cpid=`cat /opt/zimbra/log/freshclam.pid` kill -TERM "$cpid" 2> /dev/null fi if [ -f /opt/zimbra/log/clamd.pid ]; then cpid=`cat /opt/zimbra/log/clamd.pid` kill -TERM "$cpid" 2> /dev/null fi if [ "x$platform" = "xMACOSX" -o "x$platform" = "xMACOSXx86" ]; then killall -TERM freshclam killall -TERM clamd else killall -TERM ${zimbra_home}/clamav/bin/freshclam killall -TERM ${zimbra_home}/clamav/sbin/clamd fi exit 0 ;; 'stop') if [ -f /opt/zimbra/log/freshclam.pid ]; then cpid=`cat /opt/zimbra/log/freshclam.pid` kill -TERM "$cpid" 2> /dev/null fi if [ -f /opt/zimbra/log/clamd.pid ]; then cpid=`cat /opt/zimbra/log/clamd.pid` kill -TERM "$cpid" 2> /dev/null fi if [ "x$platform" = "xMACOSX" -o "x$platform" = "xMACOSXx86" ]; then killall -TERM freshclam > /dev/null 2>&1 killall -TERM clamd > /dev/null 2>&1 else killall -TERM ${zimbra_home}/clamav/bin/freshclam > /dev/null 2>&1 killall -TERM ${zimbra_home}/clamav/sbin/clamd > /dev/null 2>&1 fi exit 0 ;; 'restart') $0 stop $0 start ;; 'status') cpid=`cat /opt/zimbra/log/clamd.pid` kill -0 "$cpid" 2> /dev/null exit $? ;; *) echo "Usage: $0 start|stop|kill|restart|status" exit 1 ;; esac