[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