diff options
author | Jamie Lenehan <lenehan@twibble.org> | 2006-10-05 08:00:52 +0000 |
---|---|---|
committer | Jamie Lenehan <lenehan@twibble.org> | 2006-10-05 08:00:52 +0000 |
commit | 1565969c4c85900f05c337b31bd9f27cc4b3aece (patch) | |
tree | cdd77635d12e9b10143efb25dd305af32dec0024 | |
parent | 3e09934ece121e26e90b59e7397b126b937debec (diff) |
clamav 0.84: Simplify the init scripts. assume that the volatiles
processing takes care of the required directories and permissions in
/var, don't try and create the home directories when adding the clamav user.
-rw-r--r-- | packages/clamav/clamav_0.88.4.bb | 17 | ||||
-rw-r--r-- | packages/clamav/files/clamav-daemon.init | 53 | ||||
-rw-r--r-- | packages/clamav/files/clamav-freshclam.init | 118 |
3 files changed, 48 insertions, 140 deletions
diff --git a/packages/clamav/clamav_0.88.4.bb b/packages/clamav/clamav_0.88.4.bb index fa426b6889..40804a9a2c 100644 --- a/packages/clamav/clamav_0.88.4.bb +++ b/packages/clamav/clamav_0.88.4.bb @@ -16,7 +16,7 @@ RDEPENDS_${PN} = "${PN}-data" RDEPENDS_${PN}-daemon = "${PN}-data" RRECOMMENDS_${PN} = "${PN}-freshclam" RRECOMMENDS_${PN}-daemon = "${PN}-freshclam" -PR = "r3" +PR = "r4" SRC_URI = "${SOURCEFORGE_MIRROR}/clamav/clamav-${PV}.tar.gz \ file://cross-compile-fix.patch;patch=1 \ @@ -91,20 +91,23 @@ FILES_${PN}-dev += "${bindir}/clamav-config" # Add clamav's user and groups pkg_postinst_${PN}-freshclam () { grep -q clamav: /etc/group || addgroup clamav - grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \ - --ingroup clamav -g "ClamAV" clamav + grep -q clamav: /etc/passwd || \ + adduser --disabled-password --home=/var/lib/clamav/ --system \ + --ingroup clamav --no-create-home -g "ClamAV" clamav /etc/init.d/populate-volatile.sh } pkg_postinst_${PN}-daemon () { grep -q clamav: /etc/group || addgroup clamav - grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \ - --ingroup clamav -g "ClamAV" clamav + grep -q clamav: /etc/passwd || \ + adduser --disabled-password --home=/var/lib/clamav/ --system \ + --ingroup clamav --no-create-home -g "ClamAV" clamav /etc/init.d/populate-volatile.sh } pkg_postinst_${PN}-data () { grep -q clamav: /etc/group || addgroup clamav - grep -q clamav: /etc/passwd || adduser --disabled-password --home=/var/lib/clamav/ \ - --ingroup clamav --no-create-home -g "ClamAV" clamav + grep -q clamav: /etc/passwd || \ + adduser --disabled-password --home=/var/lib/clamav/ --system \ + --ingroup clamav --no-create-home -g "ClamAV" clamav /etc/init.d/populate-volatile.sh } diff --git a/packages/clamav/files/clamav-daemon.init b/packages/clamav/files/clamav-daemon.init index a70e14f3f4..bab7a184d7 100644 --- a/packages/clamav/files/clamav-daemon.init +++ b/packages/clamav/files/clamav-daemon.init @@ -1,64 +1,31 @@ #! /bin/sh -# This is a modified version of the debian clamav-daemon init script -set -e PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/clamd NAME="clamd" DESC="ClamAV daemon" CLAMAVCONF=/etc/clamd.conf -[ -x "$DAEMON" ] || exit 0 -[ -r /etc/default/clamav-daemon ] && . /etc/default/clamav-daemon +set -e -if [ ! -f "$CLAMAVCONF" ]; then - echo "There is no configuration file for $DESC." - exit 0; -fi -if grep -q "^Example" $CLAMAVCONF; then - echo "$DESC is not configured. Please edit $CLAMAVCONF" - exit 0 +test -r /etc/default/clamav-daemon && . /etc/default/clamav-daemon +test -x "$DAEMON" || exit 0 +test ! -r "$CLAMAVCONF" && exit 0 +if [ `grep -q "^Example" $CLAMAVCONF` ]; then + echo "$DESC is not configured." + exit 0 fi - -THEPIDFILE="`grep ^PidFile $CLAMAVCONF | awk '{print $2}'`" -[ -e "$THEPIDFILE" ] && PID=`cat $THEPIDFILE` -[ "$PID" = '1' ] && unset PID - -# Make sure dirs exist and are correct -for i in /var/run/clamav /var/log/clamav /var/lib/clamav -do - [ ! -d $i ] && mkdir -p $i && chown clamav:clamav $i -done +pidfile="`grep ^PidFile $CLAMAVCONF | awk '{print $2}'`" case "$1" in start) echo -n "Starting $DESC: " start-stop-daemon --oknodo -S -x $DAEMON - echo "$NAME" + echo "$NAME." ;; stop) echo -n "Stopping $DESC: " - if [ -n "$PID" ]; then - kill -15 -"$PID" - sleep 1 - if kill -0 "$PID" 2>/dev/null; then - echo -n "Waiting . " - cnt=0 - while kill -0 "$PID" 2>/dev/null; do - cnt=`expr "$cnt" + 1` - if [ "$cnt" -gt 60 ]; then - echo -n " Failed.. " - kill -9 -"$PID" - break - fi - sleep 2 - echo -n ". " - done - fi - else - start-stop-daemon -o -K -q -p $THEPIDFILE - fi - echo "$NAME" + start-stop-daemon -K -p $pidfile ;; restart|force-reload) diff --git a/packages/clamav/files/clamav-freshclam.init b/packages/clamav/files/clamav-freshclam.init index 47491a2a54..490a41e31f 100644 --- a/packages/clamav/files/clamav-freshclam.init +++ b/packages/clamav/files/clamav-freshclam.init @@ -1,15 +1,17 @@ #!/bin/sh -# This is a modified version of the debian clamav-freshclam init script -set -e +PATH=/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/bin/freshclam NAME=freshclam DESC="ClamAV virus database updater" - -[ -x $DAEMON ] || exit 0 - CLAMAV_CONF_FILE=/etc/clamd.conf FRESHCLAM_CONF_FILE=/etc/freshclam.conf -PIDFILE=/var/run/clamav/freshclam.pid +pidfile=/var/run/clamav/freshclam.pid + +set -e + +test -r /etc/default/clamav-freshclam && . /etc/default/clamav-freshclam +test -x "$DAEMON" || exit 0 +test ! -r "$CLAMAV_CONF_FILE" && exit 0 slurp_config() { @@ -40,51 +42,8 @@ slurp_config() fi } - slurp_config "$FRESHCLAM_CONF_FILE" -for inet in $INTERFACE; do - if route | grep -q "$inet"; then - IS_UP=true - break - else - IS_UP=false - fi -done -for inet in $INTERFACE; do - if [ "$inet" = "$IFACE" ]; then - match=true - break - else - match=false - fi -done - -# We don't want to always start/stop if running from if-up/down.d -if ! [ "$1" = "start" -o "$1" = "stop" ]; then # Exempt restart/reload/etc from checks - if [ -n "$INTERFACE" ]; then # Want it only run from if-up.d - if [ -z "$IFACE" ]; then # Is not called by if-up.d - if [ "$IS_UP" = false ]; then # And route isn't up (e.g., upgrade) - echo "Interface not up. Exiting." - exit 0 - fi - elif [ "$match" != 'true' ]; then # IFACE coming up is not the one selected - echo "Interface not up. Exiting." - exit 0 - fi - fi -fi - -# If user wants it run from cron, we only accept no-daemon and stop -if [ -f /etc/cron.d/clamav-freshclam ]; then - if ! [ "$1" = "no-daemon" -o "$1" = "stop" ]; then - echo "Cron option has been selected for running freshclam" - echo "Please either run freshclam directly, or run the init" - echo "script with the 'no-daemon' option" - exit 0 - fi -fi - [ -z "$UpdateLogFile" ] && UpdateLogFile=/var/log/clamav/freshclam.log if [ -z "$DatabaseDirectory" ]; then @@ -92,54 +51,33 @@ if [ -z "$DatabaseDirectory" ]; then [ -z "$DatabaseDirectory" ] && DatabaseDirectory=/var/lib/clamav/ fi -[ -e "$PIDFILE" ] && PID=`cat $PIDFILE` -[ "$PID" = '1' ] && unset PID - -# Make sure dirs exist and are correct -for i in /var/run/clamav /var/log/clamav $DatabaseDirectory -do - [ ! -d $i ] && mkdir -p $i && chown clamav:clamav $i -done case "$1" in no-daemon) - echo "It takes freshclam ~3min to timeout and try the next mirror in the list" - freshclam -l "$UpdateLogFile" --datadir "$DatabaseDirectory" - ;; + echo "It takes freshclam ~3min to timeout and try the next mirror in the list" + freshclam -l "$UpdateLogFile" --datadir "$DatabaseDirectory" + ;; + start) - echo -n "Starting $DESC: " - start-stop-daemon -S -x $DAEMON -- -d --quiet -p $PIDFILE - echo "$NAME" - ;; + echo -n "Starting $DESC: " + start-stop-daemon -S -x $DAEMON -- -d --quiet -p $pidfile + echo "$NAME." + ;; + stop) - echo -n "Stopping $DESC: " - start-stop-daemon -o -K -q -p $PIDFILE $DAEMON - if [ -n "$PID" ]; then - sleep 1 - if kill -0 "$PID" 2>/dev/null; then - echo -n "Waiting . " - cnt=0 - while kill -0 "$PID" 2>/dev/null; do - cnt=`expr "$cnt" + 1` - if [ "$cnt" -gt 60 ]; then - echo -n " Failed.. " - break - fi - sleep 2 - echo -n ". " - done - fi - fi - echo "$NAME" - ;; + echo -n "Stopping $DESC: " + start-stop-daemon -K -p $pidfile + ;; + restart|force-reload) - $0 stop - $0 start - ;; + $0 stop + $0 start + ;; + *) - echo "Usage: $0 {no-daemon|start|stop|restart|force-reload}" >&2 - exit 1 - ;; + echo "Usage: $0 {no-daemon|start|stop|restart|force-reload}" >&2 + exit 1 + ;; esac exit 0 |