Package: ddclient
Version: 3.8.0-11.3
Severity: normal
Dear Maintainer,
*** Please consider answering these questions, where appropriate ***
* What led up to the situation?
* What exactly did you do (or not do) that was effective (or
ineffective)?
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these lines ***
Noticed several instances of ddclient running, running "service ddclient stop"
didn't stop them, neither "killall ddclient", only "killall -r ddclient" worked.
Now, "service ddclient start" or restart would start duplicates.
It seems to be caused by the process name changed to "ddclient - sleeping ...".
Removing "--name" from test/stop cases of start-stop-daemon in /etc/init.d/
ddclient seesm to fix it.
Here are some logs:
$ ps -few | grep ddclient
root 28063 27778 0 18:05 pts/0 00:00:00 grep ddclient
$ service ddclient start
Starting Dynamic DNS service update utility: ddclient.
$ ps -few | grep ddclient
root 28072 1 0 18:05 pts/0 00:00:00 ddclient - sleeping for 300
seconds
root 28081 27778 0 18:05 pts/0 00:00:00 grep ddclient
$ cat /var/run/ddclient.pid
28072
$ service ddclient stop
Stopping Dynamic DNS service update utility: ddclient.
$ ps -few | grep ddclient
root 28072 1 0 18:05 pts/0 00:00:00 ddclient - sleeping for 280
seconds
root 28096 27778 0 18:06 pts/0 00:00:00 grep ddclient
$ cat /var/run/ddclient.pid
28072
$ service ddclient status
Status of Dynamic DNS service update utility: ddclient is running.
$ service ddclient start
Starting Dynamic DNS service update utility: ddclient.
$ ps -few | grep ddclient
root 28072 1 0 18:05 pts/0 00:00:00 ddclient - sleeping for 240
seconds
root 28114 1 0 18:06 pts/0 00:00:00 ddclient - sleeping for 300
seconds
root 28123 27778 0 18:06 pts/0 00:00:00 grep ddclient
$ cat /var/run/ddclient.pid
28114
$ killall -r ddclient
$ ps -few | grep ddclient
root 28127 27778 0 18:07 pts/0 00:00:00 grep ddclient
$ cat /var/run/ddclient.pid
cat: /var/run/ddclient.pid: No such file or directory
-- System Information:
Debian Release: wheezy/sid
APT prefers stable
APT policy: (500, 'stable'), (400, 'testing'), (300, 'unstable'), (200,
'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 3.1.0-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Versions of packages ddclient depends on:
ii debconf [debconf-2.0] 1.5.41
ii initscripts 2.88dsf-13.13
ii lsb-base 3.2-28
ii perl [perl5] 5.14.2-6
Versions of packages ddclient recommends:
ii libio-socket-ssl-perl 1.49-1
ddclient suggests no packages.
-- Configuration Files:
/etc/init.d/ddclient changed:
PATH=/sbin:/bin:/usr/sbin:/usr/bin
NAME="ddclient"
DAEMON=/usr/sbin/$NAME
DESC="Dynamic DNS service update utility"
test -f $DAEMON || exit 0
run_daemon=false
daemon_interval=300
if [ -r /etc/default/ddclient ]; then
. /etc/default/ddclient
fi
PIDFILE=/var/run/$NAME.pid
OPTIONS="-daemon $daemon_interval -syslog -pid $PIDFILE"
. /lib/init/vars.sh
. /lib/lsb/init-functions
do_start()
{
if [ "$run_daemon" != "true" ]; then
return 0
fi
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --test --start --quiet \
--pidfile $PIDFILE --startas $DAEMON \
>/dev/null \
|| return 1
start-stop-daemon --start --quiet \
--pidfile $PIDFILE --name $NAME --startas $DAEMON \
-- $OPTIONS \
|| return 2
}
do_stop()
{
if [ "$run_daemon" != "true" ]; then
return 0
fi
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --retry=TERM/30/KILL/5 \
--pidfile $PIDFILE
return "$?"
}
case "$1" in
start)
if [ "$run_daemon" != "true" ]; then
log_warning_msg "To run ddclient as a daemon, please set
run_daemon to 'true' in /etc/default/ddclient "
log_end_msg 0
exit 0
fi
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
if [ "$run_daemon" != "true" ]; then
log_warning_msg "To run ddclient as a daemon, please set
run_daemon to 'true' in /etc/default/ddclient "
log_end_msg 0
exit 0
fi
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
status)
echo -n "Status of $DESC: "
if [ ! -r "$PIDFILE" ]; then
echo "$NAME is not running."
exit 3
fi
if read pid < "$PIDFILE" && ps -p "$pid" > /dev/null 2>&1; then
echo "$NAME is running."
exit 0
else
echo "$NAME is not running but $PIDFILE exists."
exit 1
fi
;;
restart|force-reload)
if [ $run_daemon != "true" ]; then
log_warning_msg "To run ddclient as a daemon, please set
run_daemon to 'true' in /etc/default/ddclient "
log_end_msg 0
exit 0
fi
log_daemon_msg "Restarting $DESC" "$NAME"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
N=/etc/init.d/$NAME
# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
log_success_msg "Usage: $N {start|stop|restart|force-reload}"
exit 1
;;
esac
exit 0
-- debconf information excluded
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]