[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-98-gc4e1bf5
Stephen Gran
steve at lobefin.net
Fri Apr 17 18:21:02 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit c4e1bf5d98637c0219852eaac768170bf8aef2fc
Author: Stephen Gran <steve at lobefin.net>
Date: Fri Apr 17 19:11:36 2009 +0100
Some changes to the milter init script
Signed-off-by: Stephen Gran <steve at lobefin.net>
diff --git a/debian/clamav-milter.init.in b/debian/clamav-milter.init.in
index b3ffd3d..eed2814 100644
--- a/debian/clamav-milter.init.in
+++ b/debian/clamav-milter.init.in
@@ -11,96 +11,123 @@
# Description: Clam AntiVirus milter interface
### END INIT INFO
+# edit /etc/default/clamav-milter for options
+
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/clamav-milter
-NAME=clamav-milter
DESC="Sendmail milter plugin for ClamAV"
-CLAMAVMILTERCONF=/etc/clamav/clamav-milter.conf
+BASENAME=clamav-milter
+CLAMAVCONF=/etc/clamav/clamav-milter.conf
DEFAULT=/etc/default/clamav-milter
SUPERVISOR=/usr/bin/daemon
-SUPERVISORNAME=daemon
SUPERVISORPIDFILE="/var/run/clamav/daemon-clamav-milter.pid"
-SUPERVISORARGS="--name=$NAME --respawn $DAEMON -F $SUPERVISORPIDFILE"
+SUPERVISORARGS="-F $SUPERVISORPIDFILE --name=$BASENAME --respawn"
+CLAMAVDAEMONUPGRADE="/var/run/clamav-daemon-being-upgraded"
[ -x "$DAEMON" ] || exit 0
+[ ! -r $DEFAULT ] || . $DEFAULT
+
. /lib/lsb/init-functions
-if [ ! -f "$CLAMAVMILTERCONF" ]; then
+if [ ! -f "$CLAMAVCONF" ]; then
log_failure_msg "There is no configuration file for clamav-milter."
log_failure_msg "Please either dpkg-reconfigure $DESC, or copy the example from"
- log_failure_msg "/usr/share/doc/clamav-milter/examples/ to $CLAMAVMILTERCONF and run"
+ log_failure_msg "/usr/share/doc/clamav-milter/examples/ to $CLAMAVCONF and run"
log_failure_msg "'/etc/init.d/clamav-milter start'"
exit 0
fi
#COMMON-FUNCTIONS#
-slurp_config "$CLAMAVMILTERCONF"
-
-[ ! -r $DEFAULT ] || . $DEFAULT
-[ -n "$PidFile" ] || PidFile=/var/run/clamav/clamav-milter.pid
-[ -n "$MilterSocket" ] || MilterSocket=local:/var/run/clamav/clamav-milter.ctl
+slurp_config "$CLAMAVCONF"
+[ -n "$User" ] || User=clamav
if [ -n "$Example" ]; then
log_failure_msg "$DESC is not configured."
- log_failure_msg "Please edit $CLAMAVMILTERCONF and run '/etc/init.d/clamav-milter start'"
+ log_failure_msg "Please edit $CLAMAVCONF and run '/etc/init.d/clamav-milter start'"
exit 0
fi
-if is_true "$Foreground"; then
- if [ ! -x "$SUPERVISOR" ] ; then
- log_failure_msg "Foreground specified, but $SUPERVISORNAME not found"
- exit 0
- else
- RUN_SUPERVISED=1
- make_dir $(dirname "$SUPERVISORPIDFILE")
- chown $User $(dirname "$SUPERVISORPIDFILE")
- fi
+if [ -z "$PidFile" ]; then
+ PIDFILE=/var/run/clamav/clamav-milter.pid
+else
+ PIDFILE="$PidFile"
+fi
+
+if [ -z "$MilterSocket" ]; then
+ SOCKET=local:/var/run/clamav/clamav-milter.ctl
+else
+ SOCKET="$MilterSocket"
fi
-case "$MilterSocket" in
+case "$SOCKET" in
/*)
- SOCKET_PATH="$MilterSocket"
+ SOCKET_PATH="$SOCKET"
+ SOCKET="local:$SOCKET"
;;
*)
+ SOCKET_PATH=`echo $SOCKET | sed -e s/local\://`
# If the socket is type inet: we don't care - we can't rm -f that later :)
- SOCKET_PATH=`echo $MilterSocket | sed -e s/(unix|local)\://`
;;
esac
-[ -n "$User" ] || User=clamav
-
-THEPIDFILE=$PidFile
-[ -n "$THEPIDFILE" ] || THEPIDFILE='/var/run/clamav/clamav-milter.pid'
-make_dir $(dirname "$THEPIDFILE")
-chown $User $(dirname "$THEPIDFILE")
-
-if [ -f "$THEPIDFILE" ]; then
- CLAMMILTERPID=`pidofproc -p $THEPIDFILE $DAEMON`
- RUNNING=$?
-else
- CLAMMILTERPID=`pidofproc $DAEMON`
- RUNNING=$?
+if is_true "$Foreground"; then
+ if [ ! -x "$SUPERVISOR" ] ; then
+ log_failure_msg "Foreground specified, but $SUPERVISOR not found"
+ exit 0
+ else
+ RUN_SUPERVISED=1
+ SUPERVISOR_EXEC="$DAEMON $OPTIONS --pidfile $PIDFILE $SOCKET"
+ fi
fi
-if [ -z "$RUN_SUPERVISED" ]; then
- PID="$CLAMMILTERPID"
+if [ -z "$RUN_SUPERVISED" ] ; then
+ if [ -f "$PIDFILE" ]; then
+ PID=`pidofproc -p $PIDFILE $DAEMON`
+ RUNNING=$?
+ else
+ PID=`pidofproc $DAEMON`
+ RUNNING=$?
+ fi
else
- [ -e "$SUPERVISORPIDFILE" ] && PID=`cat $SUPERVISORPIDFILE`
+ [ -e "$SUPERVISORPIDFILE" ] && PID=`sed 's/[^0-9]//g' $SUPERVISORPIDFILE`
fi
[ "$PID" = '1' ] && unset PID
+[ -n "$User" ] || User=clamav
+[ -n "$DataBaseDirectory" ] || DataBaseDirectory=/var/run/clamav
+
+make_dir "$DataBaseDirectory"
+if [ "${SOCKET_PATH#inet}" = "${SOCKET_PATH}" ]; then
+ make_dir $(dirname "$SOCKET_PATH")
+ chown $User $(dirname "$SOCKET_PATH")
+fi
+
+make_dir $(dirname "$THEPIDFILE")
+chown $User $(dirname "$THEPIDFILE")
case "$1" in
start)
OPTIND=1
+ if [ -n "$PID" ]; then
+ PID=`echo $PID | sed 's/[^0-9]//g'`
+ if kill -0 $PID; then
+ log_failure_msg "$DAEMON already running"
+ exit 1
+ fi
+ fi
+ if [ -e "$CLAMAVDAEMONUPGRADE" ] && [ "$RESTART_AFTER_CLAMD" = 'yes' ]; then
+ touch $CLAMAVDAEMONUPGRADE.milter-restart
+ log_warning_msg "clamd may be required to run $DAEMON, clamav-milter will be restarted by clamav-daemon"
+ exit 0
+ fi
if [ -z "$RUN_SUPERVISED" ] ; then
- log_daemon_msg "Starting $DESC" "$NAME "
- su "$User" -p -s /bin/sh -c ". /lib/lsb/init-functions && start_daemon -p $THEPIDFILE $DAEMON"
+ log_daemon_msg "Starting $DESC" "$BASENAME"
+ su "$User" -p -s /bin/sh -c ". /lib/lsb/init-functions && start_daemon $DAEMON $OPTIONS --pidfile $PIDFILE $SOCKET" > /dev/null
ret=$?
- else
- log_daemon_msg "Starting $DESC" "$NAME (supervised) "
- $SUPERVISOR $SUPERVISORARGS
+ else
+ log_daemon_msg "Starting $DESC" "$BASENAME (supervised)"
+ $SUPERVISOR $SUPERVISORARGS -X "$SUPERVISOR_EXEC"
ret=$?
fi
if [ $ret = 0 ] && [ "$USE_POSTFIX" = 'yes' ] && [ "${SOCKET_PATH#inet}" = "${SOCKET_PATH}" ]; then
@@ -122,13 +149,14 @@ case "$1" in
log_end_msg $ret
;;
stop)
- log_daemon_msg "Stopping $DESC" "$NAME"
OPTIND=1
+ log_daemon_msg "Stopping $DESC" "$BASENAME"
if [ -n "$PID" ]; then
- kill -15 -"$PID"
+ PID=`echo $PID | sed 's/[^0-9]//g'`
+ kill -15 -"$PID" 2>/dev/null || true
ret=$?
- sleep 1
- if kill -0 "$PID" 2>/dev/null; then
+ sleep 2
+ if kill -0 "$PID" 2>/dev/null; then
ret=$?
log_progress_msg "Waiting . "
cnt=0
@@ -137,6 +165,7 @@ case "$1" in
cnt=`expr "$cnt" + 1`
if [ "$cnt" -gt 15 ]; then
kill -9 -"$PID"
+ ret=$?
break
fi
sleep 2
@@ -145,7 +174,7 @@ case "$1" in
fi
else
if [ -z "$RUN_SUPERVISED" ] ; then
- killproc -p $THEPIDFILE
+ killproc -p $PIDFILE $DAEMON
ret=$?
else
killproc -p $SUPERVISORPIDFILE
@@ -157,15 +186,18 @@ case "$1" in
else
log_end_msg $?
fi
+ [ -e "$SOCKET_PATH" ] && rm -f $SOCKET_PATH
+ [ -e "$PIDFILE" ] && rm -f $PIDFILE
+ ;;
+ force-reload | restart)
+ $0 stop
+ sleep 2
+ $0 start
;;
status)
status_of_proc "$DAEMON" "$NAME"
exit $?
;;
- restart|force-reload)
- $0 stop
- $0 start
- ;;
*)
log_failure_msg "Usage: $0 {start|stop|restart|force-reload|status}" >&2
exit 1
--
Debian repository for ClamAV
More information about the Pkg-clamav-commits
mailing list