#! /bin/sh # # bpdyndnsd # # chkconfig: 35 90 20 # description: Bullet proof dynamic DNS update daemon. # processname: bpdyndnsd # config: /etc/bpdyndnsd/bpdyndnsd.conf # pidfile: /var/run/bpdyndnsd/bpdyndnsd.pid # Source function library. . /etc/rc.d/init.d/functions # Configuration . /etc/sysconfig/bpdyndnsd # Prog name progname="bpdyndnsd (dynamic DNS update daemon)" # User and group user=bpdyndnsd group=bpdyndnsd # Binary file prog=/usr/bin/bpdyndnsd # PID file pidfile=/var/run/bpdyndnsd/bpdyndnsd.pid test -x ${prog} || exit 0 test -e /etc/bpdyndnsd/bpdyndnsd.conf || exit 0 ## ## the functions: ## start() { [ -f /var/lock/subsys/bpdyndnsd ] && stop if [ $START_BPDYNDNSD -eq 1 ]; then # Check if this is really bpdyndnsd's pid file if [ -f $pidfile ]; then if ! grep -s -q "bpdyndnsd" /proc/`cat $pidfile`/cmdline; then echo "Unlinking non-bpdyndnsd pid file" rm -f $pidfile fi fi echo -n "Starting $progname: " daemon --user bpdyndnsd $prog --daemon_mode 1 --syslog 1; RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bpdyndnsd fi } stop() { if [ ! -f /var/lock/subsys/bpdyndnsd ]; then return 0 fi echo -n "Stopping $progname: " killproc bpdyndnsd RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bpdyndnsd } reload() { echo -n "Reloading $progname: " killproc bpdyndnsd -HUP RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo } restart() { stop start } online() { echo -n "Switching $progname to online mode: " killproc bpdyndnsd -USR2 RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo } online_webcheck() { echo -n "Switching $progname to online mode with webcheck enabled: " killproc bpdyndnsd -RTMIN RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo } offline() { echo -n "Switching $progname to offline mode: " killproc bpdyndnsd -USR1 RETVAL=$? [ $RETVAL -eq 0 ] && success || failure echo } ## ## determine what we should do: ## case "$1" in start) start ;; stop) stop ;; status) status $prog RETVAL=$? ;; restart) restart ;; reload) reload ;; condrestart) [ -f /var/lock/subsys/bpdyndnsd ] && restart || : ;; online) online ;; online_webcheck) online_webcheck ;; offline) offline ;; *) echo "Usage: bpdyndnsd {start|stop|status|restart|reload|condrestart|online|online_webcheck|offline}" RETVAL=1 esac exit $RETVAL