Package: munin-node
Version: 1.2.4-1
Severity: important

"/etc/init.d/munin-node start" never returns and makes the system hang
on boot. I can reproduce the effect if I call it from the command line.
It hangs in a "read pid" command. I'm not sure if this is a bug of the
munin-node init script itself or of some other scripts or programs it
calls. If I call the init script with
  echo 0 | /etc/init.d/munin-node start
it does not hang and comes back as usual.

Below is a trace with set -vx. Sorry for the long output, hopefully it
helps.

Regards,

Uwe


# /etc/init.d/munin-node start

# log_daemon_msg() and log_progress_msg() isn't present in present in Sarge.
# Below is a copy of them from lsb-base 3.0-5, for the convenience of back-
# porters.  If the installed version of lsb-base provides these functions,
# they will be used instead.

log_daemon_msg () {
    if [ -z "$1" ]; then
        return 1
    fi

    if [ -z "$2" ]; then
        echo -n "$1:"
        return
    fi
    
    echo -n "$1: $2"
}

log_progress_msg () {
    if [ -z "$1" ]; then
        return 1
    fi
    echo -n " $@"
}

. /lib/lsb/init-functions
+ . /lib/lsb/init-functions
# /lib/lsb/init-functions for Debian -*- shell-script -*-
#
#Copyright (c) 2002-05 Chris Lawrence
#All rights reserved.
#
#Redistribution and use in source and binary forms, with or without
#modification, are permitted provided that the following conditions
#are met:
#1. Redistributions of source code must retain the above copyright
#   notice, this list of conditions and the following disclaimer.
#2. Redistributions in binary form must reproduce the above copyright
#   notice, this list of conditions and the following disclaimer in the
#   documentation and/or other materials provided with the distribution.
#3. Neither the name of the author nor the names of other contributors
#   may be used to endorse or promote products derived from this software
#   without specific prior written permission.
#
#THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
#FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
#OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#SUCH DAMAGE.

start_daemon () {
    local force nice pidfile exec i
    set -- `POSIXLY_CORRECT=1 getopt "fn:p:" $*`
    force=0
    nice=0
    pidfile=/dev/null

    for i in $*; do
        case $i in
            -f)  force=1; shift;;
            -n)  nice=$2; shift 2;;
            -p)  pidfile=$2; shift 2;;
            --)  shift; break;;
        esac
    done

    exec=$1; shift

    if [ $force = 1 ]; then
        /sbin/start-stop-daemon --start --nicelevel $nice --quiet --startas 
$exec --pidfile /dev/null --oknodo -- $*
    elif [ $pidfile ]; then
        /sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec 
--oknodo --pidfile "$pidfile" -- $*
    else
        /sbin/start-stop-daemon --start --nicelevel $nice --quiet --exec $exec 
--oknodo -- $*
    fi
}

pidofproc () {
    local pidfile line i pids= status specified pid
    set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
    pidfile=
    specified=

    for i in $*; do
        case $i in
            -p)  pidfile=$2; specified=1; shift 2;;
            --)  shift; break;;
        esac
    done

    if [ -z "${pidfile:-}" ]; then
        pidfile=/var/run/$(basename "$1").pid
    fi

    if [ -f "$pidfile" ]; then
        read pid
        if [ -n "${pid:-}" ]; then
            echo "$pid"
            return 0
        else
            return 2 # program is dead and /var/run pid file exists
        fi
    elif [ -x /bin/pidof -a ! $specified ]; then
        /bin/pidof -o %PPID $1
        status="$?"
        [ "$status" = 1 ] && return 3 # program is not running
        return 0
    else
        return 4 # program or service is unknown
    fi
}

# start-stop-daemon uses the same algorithm as "pidofproc" above.
killproc () {
    local pidfile sig status base i specified
    set -- `POSIXLY_CORRECT=1 getopt "p:" $*`
    pidfile=
    specified=

    for i in $*; do
        case $i in
            -p)  pidfile=$2; specified=1; shift 2;;
            --)  shift; break;;
        esac
    done

    base=$(basename "$1")
    if [ ! $pidfile ]; then
        pidfile=/var/run/$base.pid
    fi

    if [ $specified ]; then
        sig=$(echo ${2:-} | sed -e 's/^-\(.*\)/\1/')
        sig=$(echo $sig | sed -e 's/^SIG\(.*\)/\1/')
        sig=${sig:-TERM}
        /sbin/start-stop-daemon --stop --pidfile "$pidfile" --signal $sig 
--quiet --name "$base"
        status="$?"
        [ "$status" = 1 ] && return 3 # program is not running
        return 0
    else
        /sbin/start-stop-daemon --stop --pidfile "$pidfile" --retry 5 --quiet 
--oknodo --name "$base"
    fi

    rm -f "$pidfile"
}

log_use_fancy_output () {
    TPUT=/usr/bin/tput
    EXPR=/usr/bin/expr
    if [ "x$TERM" != "xdumb" ] && [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 
>/dev/null 2>&1; then
        FANCYTTY=1
        true
    else
        FANCYTTY=0
        false
    fi
}

log_success_msg () {
    echo "$@"
}

log_failure_msg () {
    if log_use_fancy_output; then
        RED=`$TPUT setaf 1`
        NORMAL=`$TPUT op`
        echo "$RED*$NORMAL $@"
    else
        echo "$@"
    fi
}

log_warning_msg () {
    if log_use_fancy_output; then
        YELLOW=`$TPUT setaf 3`
        NORMAL=`$TPUT op`
        echo "$YELLOW*$NORMAL $@"
    else
        echo "$@"
    fi
}

#
# NON-LSB HELPER FUNCTIONS
#
# int get_lsb_header_val (char *scriptpathname, char *key)
get_lsb_header_val () {
        if [ ! -f "$1" ] || [ -z "${2:-}" ]; then
                return 1
        fi
        LSB_S="### BEGIN INIT INFO"
        LSB_E="### END INIT INFO"
        sed -n "/$LSB_S/,/$LSB_E/ s/# $2: \(.*\)/\1/p" $1
}

# int log_begin_message (char *message)
log_begin_msg () {
    if [ -z "${1:-}" ]; then
        return 1
    fi
    echo -n "$@"
}

# Sample usage:
# log_daemon_msg "Starting GNOME Login Manager" "gdm"
#
# On Debian, would output "Starting GNOME Login Manager: gdm"
# On Ubuntu, would output " * Starting GNOME Login Manager..."
#
# If the second argument is omitted, logging suitable for use with
# log_progress_msg() is used:
#
# log_daemon_msg "Starting remote filesystem services"
#
# On Debian, would output "Starting remote filesystem services:"
# On Ubuntu, would output " * Starting remote filesystem services..."

log_daemon_msg () {
    if [ -z "${1:-}" ]; then
        return 1
    fi

    if [ -z "${2:-}" ]; then
        echo -n "$1:"
        return
    fi
    
    echo -n "$1: $2"
}

# #319739
#
# Per policy docs:
#
#     log_daemon_msg "Starting remote file system services"
#     log_progress_msg "nfsd"; start-stop-daemon --start --quiet nfsd
#     log_progress_msg "mountd"; start-stop-daemon --start --quiet mountd
#     log_progress_msg "ugidd"; start-stop-daemon --start --quiet ugidd
#     log_end_msg 0
#
# You could also do something fancy with log_end_msg here based on the
# return values of start-stop-daemon; this is left as an exercise for
# the reader...
#
# On Ubuntu, one would expect log_progress_msg to be a no-op.
log_progress_msg () {
    if [ -z "${1:-}" ]; then
        return 1
    fi
    echo -n " $@"
}


# int log_end_message (int exitstatus)
log_end_msg () {
    # If no arguments were passed, return
    [ -z "${1:-}" ] && return 1

    # Only do the fancy stuff if we have an appropriate terminal
    # and if /usr is already mounted
    if log_use_fancy_output; then
        RED=`$TPUT setaf 1`
        NORMAL=`$TPUT op`
        if [ $1 -eq 0 ]; then
            echo "."
        else
            /bin/echo -e " ${RED}failed!${NORMAL}"
        fi
    else
        if [ $1 -eq 0 ]; then
            echo "."
        else
            echo " failed!"
        fi
    fi
    return $1
}

log_action_msg () {
    echo "[EMAIL PROTECTED]"
}

log_action_begin_msg () {
    echo -n "[EMAIL PROTECTED]"
}

log_action_cont_msg () {
    echo -n "[EMAIL PROTECTED]"
}

log_action_end_msg () {
    if [ -z "${2:-}" ]; then
        end="."
    else
        end=" ($2)."
    fi

    if [ $1 -eq 0 ]; then
        echo "done${end}"
    else
        if log_use_fancy_output; then
            RED=`$TPUT setaf 1`
            NORMAL=`$TPUT op`
            /bin/echo -e "${RED}failed${end}${NORMAL}"
        else
            echo "failed${end}"
        fi
    fi
}

[ -e /etc/lsb-base-logging.sh ] && . /etc/lsb-base-logging.sh || true
++ '[' -e /etc/lsb-base-logging.sh ']'
++ true

if [ ! -x $DAEMON ]; then
        log_failure_msg "Munin-Node appears to be uninstalled."
        exit 5
elif [ ! -e $CONFFILE ]; then
        log_failure_msg "Munin-Node appears to be unconfigured."
        exit 6
fi
+ '[' '!' -x /usr/sbin/munin-node ']'
+ '[' '!' -e /etc/munin/munin-node.conf ']'

# Figure out if the pid file is in a non-standard location
while read line; do
        line=${line%%\#*} # get rid of comments
        set -f
        line=$(echo $line) # get rid of extraneous blanks
        set +f
        if [ "$line" != "${line#pid_file }" ]; then
                PIDFILE=${line#pid_file }
        fi
done < $CONFFILE
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line='log_level 4'
+ set -f
echo $line
++ echo log_level 4
+ line='log_level 4'
+ set +f
+ '[' 'log_level 4' '!=' 'log_level 4' ']'
+ read line
+ line='log_file /var/log/munin/munin-node.log'
+ set -f
echo $line
++ echo log_file /var/log/munin/munin-node.log
+ line='log_file /var/log/munin/munin-node.log'
+ set +f
+ '[' 'log_file /var/log/munin/munin-node.log' '!=' 'log_file 
/var/log/munin/munin-node.log' ']'
+ read line
+ line='port 4949'
+ set -f
echo $line
++ echo port 4949
+ line='port 4949'
+ set +f
+ '[' 'port 4949' '!=' 'port 4949' ']'
+ read line
+ line='pid_file /var/run/munin/munin-node.pid'
+ set -f
echo $line
++ echo pid_file /var/run/munin/munin-node.pid
+ line='pid_file /var/run/munin/munin-node.pid'
+ set +f
+ '[' 'pid_file /var/run/munin/munin-node.pid' '!=' 
/var/run/munin/munin-node.pid ']'
+ PIDFILE=/var/run/munin/munin-node.pid
+ read line
+ line='background 1'
+ set -f
echo $line
++ echo background 1
+ line='background 1'
+ set +f
+ '[' 'background 1' '!=' 'background 1' ']'
+ read line
+ line='setseid 1'
+ set -f
echo $line
++ echo setseid 1
+ line='setseid 1'
+ set +f
+ '[' 'setseid 1' '!=' 'setseid 1' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line='host *'
+ set -f
echo $line
++ echo host '*'
+ line='host *'
+ set +f
+ '[' 'host *' '!=' 'host *' ']'
+ read line
+ line='user root'
+ set -f
echo $line
++ echo user root
+ line='user root'
+ set +f
+ '[' 'user root' '!=' 'user root' ']'
+ read line
+ line='group root'
+ set -f
echo $line
++ echo group root
+ line='group root'
+ set +f
+ '[' 'group root' '!=' 'group root' ']'
+ read line
+ line='setsid yes'
+ set -f
echo $line
++ echo setsid yes
+ line='setsid yes'
+ set +f
+ '[' 'setsid yes' '!=' 'setsid yes' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line='ignore_file ~$'
+ set -f
echo $line
++ echo ignore_file '~$'
+ line='ignore_file ~$'
+ set +f
+ '[' 'ignore_file ~$' '!=' 'ignore_file ~$' ']'
+ read line
+ line='ignore_file .bak$'
+ set -f
echo $line
++ echo ignore_file '.bak$'
+ line='ignore_file .bak$'
+ set +f
+ '[' 'ignore_file .bak$' '!=' 'ignore_file .bak$' ']'
+ read line
+ line='ignore_file %$'
+ set -f
echo $line
++ echo ignore_file '%$'
+ line='ignore_file %$'
+ set +f
+ '[' 'ignore_file %$' '!=' 'ignore_file %$' ']'
+ read line
+ line='ignore_file .dpkg-(tmp|new|old|dist)$'
+ set -f
echo $line
++ echo ignore_file '.dpkg-(tmp|new|old|dist)$'
+ line='ignore_file .dpkg-(tmp|new|old|dist)$'
+ set +f
+ '[' 'ignore_file .dpkg-(tmp|new|old|dist)$' '!=' 'ignore_file 
.dpkg-(tmp|new|old|dist)$' ']'
+ read line
+ line='ignore_file .rpm(save|new)$'
+ set -f
echo $line
++ echo ignore_file '.rpm(save|new)$'
+ line='ignore_file .rpm(save|new)$'
+ set +f
+ '[' 'ignore_file .rpm(save|new)$' '!=' 'ignore_file .rpm(save|new)$' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line=
+ set -f
echo $line
++ echo
+ line=
+ set +f
+ '[' '' '!=' '' ']'
+ read line
+ line='allow ^127.0.0.1$'
+ set -f
echo $line
++ echo allow '^127.0.0.1$'
+ line='allow ^127.0.0.1$'
+ set +f
+ '[' 'allow ^127.0.0.1$' '!=' 'allow ^127.0.0.1$' ']'
+ read line

verify_superuser() {
        action=$1
        # dash/ash do not provide $EUID, set it explicitly if not
        # I can't find any way of avoiding a fork in these
        # shells - drop me an email if you've got any suggestions
        [ -z "$EUID" ] && EUID=$(id -u)
        [ $EUID -eq 0 ] && return
        log_failure_msg "Superuser privileges required for the" \
                        "\"$action\" action."
        exit 4
}

start() {
        log_daemon_msg "Starting Munin-Node"
        if pidofproc -p $PIDFILE $DAEMON >/dev/null; then
                log_progress_msg "started beforehand"
                log_end_msg 0
                exit 0
        fi
        start_daemon -p $PIDFILE $DAEMON
        ret=$?
        # start_daemon() isn't thorough enough, ensure the daemon has been
        # started manually
        attempts=0
        until pidofproc -p $PIDFILE $DAEMON >/dev/null; do
                attempts=$(( $attempts + 1 ))
                sleep 0.05
                [ $attempts -lt 20 ] && continue
                log_end_msg 1
                return 1
        done
        [ $ret -eq 0 ] && log_progress_msg "done"
        log_end_msg $ret
        return $ret
}

stop() {
        log_daemon_msg "Stopping Munin-Node"
        # killproc() doesn't try hard enough if the pid file is missing,
        # so create it is gone and the daemon is still running
        if [ ! -r $PIDFILE ]; then
                pid=$(pidofproc -p $PIDFILE $DAEMON)
                if [ -z "$pid" ]; then
                        log_progress_msg "stopped beforehand"
                        log_end_msg 0
                        return 0
                fi
                echo $pid 2>/dev/null > $PIDFILE
                if [ $? -ne 0 ]; then
                        log_end_msg 1
                        return 1
                fi
        fi
        killproc -p $PIDFILE /usr/bin/munin-node
        ret=$?
        # killproc() isn't thorough enough, ensure the daemon has been
        # stopped manually
        attempts=0
        until ! pidofproc -p $PIDFILE $DAEMON >/dev/null; do
                attempts=$(( $attempts + 1 ))
                sleep 0.05
                [ $attempts -lt 20 ] && continue
                log_end_msg 1
                return 1
        done
        [ $ret -eq 0 ] && log_progress_msg "done"
        log_end_msg $ret
        return $ret
}

if [ "$#" -ne 1 ]; then
        log_failure_msg "Usage: /etc/init.d/munin-node" \
                        "{start|stop|restart|force-reload|try-restart}"
        exit 2
fi
+ '[' 1 -ne 1 ']'

case "$1" in
  start)
        verify_superuser $1
        start
        exit $?
        ;;
  stop)
        verify_superuser $1
        stop
        exit $?
        ;;
  restart|force-reload)
        verify_superuser $1
        stop || exit $?
        start
        exit $?
        ;;
  try-restart)
        verify_superuser $1
        pidofproc -p $PIDFILE $DAEMON >/dev/null
        if [ $? -eq 0 ]; then
                stop || exit $?
                start
                exit $?
        fi
        log_success_msg "Munin-Node was stopped beforehand and thus not" \
                        "restarted."
        exit 0
        ;;
  reload)
        log_failure_msg "The \"reload\" action is not implemented."
        exit 3
        ;;
  status)
        pid=$(pidofproc -p $PIDFILE $DAEMON)
        ret=$?
        pid=${pid% } # pidofproc() supplies a trailing space, strip it
        if [ $ret -eq 0 ]; then
                log_success_msg "Munin-Node is running (PID: $pid)"
                exit 0
        # the LSB specifies that I in this case (daemon dead + pid file exist)
        # should return 1, so why init-functions use 2 I don't know.  whatever.
        elif [ $ret -eq 2 ]; then
                log_failure_msg "Munin-Node is dead, although $PIDFILE exists."
                exit 1
        elif [ $ret -eq 3 ]; then
                log_warning_msg "Munin-Node is not running."
                exit 3
        fi
        log_warning_msg "Munin-Node status unknown."
        exit 4
        ;;
  *)
        log_failure_msg "Usage: /etc/init.d/munin-node" \
                        "{start|stop|restart|force-reload|try-restart}"
        exit 2
        ;;
esac
+ case "$1" in
+ verify_superuser start
+ action=start
+ '[' -z 0 ']'
+ '[' 0 -eq 0 ']'
+ return
+ start
+ log_daemon_msg 'Starting Munin-Node'
+ '[' -z 'Starting Munin-Node' ']'
+ '[' -z '' ']'
+ echo -n 'Starting Munin-Node:'
Starting Munin-Node:+ return
+ pidofproc -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ local pidfile line i pids= status specified pid
POSIXLY_CORRECT=1 getopt "p:" $*
++ POSIXLY_CORRECT=1
++ getopt p: -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ set -- -p /var/run/munin/munin-node.pid -- /usr/sbin/munin-node
+ pidfile=
+ specified=
+ for i in '$*'
+ case $i in
+ pidfile=/var/run/munin/munin-node.pid
+ specified=1
+ shift 2
+ for i in '$*'
+ case $i in
+ for i in '$*'
+ case $i in
+ shift
+ break
+ '[' -z /var/run/munin/munin-node.pid ']'
+ '[' -f /var/run/munin/munin-node.pid ']'
+ '[' -x /bin/pidof -a '!' 1 ']'
+ return 4
+ start_daemon -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ local force nice pidfile exec i
POSIXLY_CORRECT=1 getopt "fn:p:" $*
++ POSIXLY_CORRECT=1
++ getopt fn:p: -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ set -- -p /var/run/munin/munin-node.pid -- /usr/sbin/munin-node
+ force=0
+ nice=0
+ pidfile=/dev/null
+ for i in '$*'
+ case $i in
+ pidfile=/var/run/munin/munin-node.pid
+ shift 2
+ for i in '$*'
+ case $i in
+ for i in '$*'
+ case $i in
+ shift
+ break
+ exec=/usr/sbin/munin-node
+ shift
+ '[' 0 = 1 ']'
+ '[' /var/run/munin/munin-node.pid ']'
+ /sbin/start-stop-daemon --start --nicelevel 0 --quiet --exec 
/usr/sbin/munin-node --oknodo --pidfile /var/run/munin/munin-node.pid --
+ ret=0
+ attempts=0
+ pidofproc -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ local pidfile line i pids= status specified pid
POSIXLY_CORRECT=1 getopt "p:" $*
++ POSIXLY_CORRECT=1
++ getopt p: -p /var/run/munin/munin-node.pid /usr/sbin/munin-node
+ set -- -p /var/run/munin/munin-node.pid -- /usr/sbin/munin-node
+ pidfile=
+ specified=
+ for i in '$*'
+ case $i in
+ pidfile=/var/run/munin/munin-node.pid
+ specified=1
+ shift 2
+ for i in '$*'
+ case $i in
+ for i in '$*'
+ case $i in
+ shift
+ break
+ '[' -z /var/run/munin/munin-node.pid ']'
+ '[' -f /var/run/munin/munin-node.pid ']'
+ read pid


-- System Information:
Debian Release: testing/unstable
  APT prefers testing
  APT policy: (750, 'testing'), (650, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-1-k7
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages munin-node depends on:
ii  adduser                      3.87        Add and remove users and groups
ii  libnet-server-perl           0.90-1      An extensible, general perl server
ii  lsb-base                     3.1-8       Linux Standard Base 3.1 init scrip
ii  perl                         5.8.8-4     Larry Wall's Practical Extraction 
ii  procps                       1:3.2.6-2.2 /proc file system utilities

Versions of packages munin-node recommends:
ii  libnet-snmp-perl              5.2.0-1    Script SNMP connections

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to