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]