You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

114 lines
3.6 KiB

#!@l_prefix@/bin/openpkg rc
##
## rc.clamav -- Run-Commands
##
%config
clamav_enable="$openpkg_rc_def"
clamav_daemons="clamd clamav-milter"
clamav_clamd_flags=""
clamav_clamav_milter_flags=""
clamav_update="daily"
clamav_log_prolog="true"
clamav_log_epilog="true"
clamav_log_numfiles="10"
clamav_log_minsize="1M"
clamav_log_complevel="9"
%common
clamav_cfgfile="@l_prefix@/etc/clamav/clamd.conf"
clamav_pidfile_clamd="@l_prefix@/var/clamav/run/clamd.pid"
clamav_pidfile_clamav_milter="@l_prefix@/var/clamav/run/clamav-milter.pid"
clamav_signal () {
[ -f $clamav_pidfile_clamd ] \
&& kill -$1 `cat $clamav_pidfile_clamd`
local rc_clamav_clamd=$?
[ -f $clamav_pidfile_clamav_milter ] \
&& kill -$1 `cat $clamav_pidfile_clamav_milter`
local rc_clamav_clamav_milter=$?
[ $rc_clamav_clamd -eq 0 \
-o $rc_clamav_clamav_milter -eq 0 ]
}
%status -u @l_rusr@ -o
clamav_usable="unknown"
clamav_active="no"
rcService clamav enable yes && \
clamav_signal 0 && clamav_active="yes"
echo "clamav_enable=\"$clamav_enable\""
echo "clamav_usable=\"$clamav_usable\""
echo "clamav_active=\"$clamav_active\""
%start -u @l_rusr@
rcService clamav enable yes || exit 0
rcService clamav active yes && exit 0
for daemon in $clamav_daemons; do
if [ ".$daemon" = ".clamd" ]; then
@l_prefix@/sbin/clamd \
--config-file=$clamav_cfgfile \
$clamav_clamd_flags
elif [ ".$daemon" = ".clamav-milter" -a -x @l_prefix@/sbin/clamav-milter ]; then
( umask 002
@l_prefix@/sbin/clamav-milter \
--config-file=$clamav_cfgfile \
--max-children=4 --outgoing --local \
--pidfile=$clamav_pidfile_clamav_milter \
--sendmail-cf=/dev/null \
$clamav_clamav_milter_flags \
local:@l_prefix@/var/milter/socket/clamav-milter
) || exit $?
fi
done
%stop -u @l_rusr@
rcService clamav enable yes || exit 0
rcService clamav active no && exit 0
clamav_signal TERM
rm -f $clamav_pidfile_clamd 2>/dev/null || true
rm -f $clamav_pidfile_clamav_milter 2>/dev/null || true
%restart -u @l_rusr@
rcService clamav enable yes || exit 0
rcService clamav active no && exit 0
rc clamav stop
sleep 2
rc clamav start
%quarterly -u @l_rusr@
rcService clamav enable yes || exit 0
if [ ".$clamav_update" = .quarterly ]; then
@l_prefix@/bin/freshclam
if [ $? -ge 10 ]; then exit $?; fi
fi
%hourly -u @l_rusr@
rcService clamav enable yes || exit 0
if [ ".$clamav_update" = .hourly ]; then
@l_prefix@/bin/freshclam
if [ $? -ge 10 ]; then exit $?; fi
fi
%daily -u @l_rusr@
rcService clamav enable yes || exit 0
if [ ".$clamav_update" = .daily ]; then
@l_prefix@/bin/freshclam
if [ $? -ge 10 ]; then exit $?; fi
fi
logfiles=""
for daemon in freshclam $clamav_daemons; do
logfiles="$logfiles @l_prefix@/var/clamav/log/$daemon.log"
done
shtool rotate -f \
-n $clamav_log_numfiles -s $clamav_log_minsize -d \
-z $clamav_log_complevel -o @l_rusr@ -g @l_rgrp@ -m 644 \
-P "$clamav_log_prolog" \
-E "$clamav_log_epilog; rc clamav restart" \
$logfiles
%weekly -u @l_rusr@
rcService clamav enable yes || exit 0
if [ ".$clamav_update" = .weekly ]; then
@l_prefix@/bin/freshclam
if [ $? -ge 10 ]; then exit $?; fi
fi