| 1 | #! /bin/sh |
| 2 | # |
| 3 | # bpdyndnsd |
| 4 | # |
| 5 | # chkconfig: 35 90 20 |
| 6 | # description: Bullet proof dynamic DNS update daemon. |
| 7 | # processname: bpdyndnsd |
| 8 | # config: /etc/bpdyndnsd/bpdyndnsd.conf |
| 9 | # pidfile: /var/run/bpdyndnsd/bpdyndnsd.pid |
| 10 | |
| 11 | # Source function library. |
| 12 | . /etc/rc.d/init.d/functions |
| 13 | |
| 14 | # Configuration |
| 15 | . /etc/sysconfig/bpdyndnsd |
| 16 | |
| 17 | # Prog name |
| 18 | progname="bpdyndnsd (dynamic DNS update daemon)" |
| 19 | # User and group |
| 20 | user=bpdyndnsd |
| 21 | group=bpdyndnsd |
| 22 | # Binary file |
| 23 | prog=/usr/bin/bpdyndnsd |
| 24 | # PID file |
| 25 | pidfile=/var/run/bpdyndnsd/bpdyndnsd.pid |
| 26 | |
| 27 | test -x ${prog} || exit 0 |
| 28 | test -e /etc/bpdyndnsd/bpdyndnsd.conf || exit 0 |
| 29 | |
| 30 | |
| 31 | ## |
| 32 | ## the functions: |
| 33 | ## |
| 34 | |
| 35 | start() { |
| 36 | [ -f /var/lock/subsys/bpdyndnsd ] && stop |
| 37 | |
| 38 | if [ $START_BPDYNDNSD -eq 1 ]; then |
| 39 | # Check if this is really bpdyndnsd's pid file |
| 40 | if [ -f $pidfile ]; then |
| 41 | if ! grep -s -q "bpdyndnsd" /proc/`cat $pidfile`/cmdline; then |
| 42 | echo "Unlinking non-bpdyndnsd pid file" |
| 43 | rm -f $pidfile |
| 44 | fi |
| 45 | fi |
| 46 | |
| 47 | echo -n "Starting $progname: " |
| 48 | daemon --user bpdyndnsd $prog --daemon_mode 1 --syslog 1; |
| 49 | RETVAL=$? |
| 50 | [ $RETVAL -eq 0 ] && success || failure |
| 51 | echo |
| 52 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/bpdyndnsd |
| 53 | fi |
| 54 | } |
| 55 | |
| 56 | stop() { |
| 57 | if [ ! -f /var/lock/subsys/bpdyndnsd ]; then |
| 58 | return 0 |
| 59 | fi |
| 60 | |
| 61 | echo -n "Stopping $progname: " |
| 62 | killproc bpdyndnsd |
| 63 | RETVAL=$? |
| 64 | [ $RETVAL -eq 0 ] && success || failure |
| 65 | echo |
| 66 | [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/bpdyndnsd |
| 67 | } |
| 68 | |
| 69 | reload() { |
| 70 | echo -n "Reloading $progname: " |
| 71 | killproc bpdyndnsd -HUP |
| 72 | RETVAL=$? |
| 73 | [ $RETVAL -eq 0 ] && success || failure |
| 74 | echo |
| 75 | } |
| 76 | |
| 77 | restart() { |
| 78 | stop |
| 79 | start |
| 80 | } |
| 81 | |
| 82 | online() { |
| 83 | echo -n "Switching $progname to online mode: " |
| 84 | killproc bpdyndnsd -USR2 |
| 85 | RETVAL=$? |
| 86 | [ $RETVAL -eq 0 ] && success || failure |
| 87 | echo |
| 88 | } |
| 89 | |
| 90 | online_webcheck() { |
| 91 | echo -n "Switching $progname to online mode with webcheck enabled: " |
| 92 | killproc bpdyndnsd -RTMIN |
| 93 | RETVAL=$? |
| 94 | [ $RETVAL -eq 0 ] && success || failure |
| 95 | echo |
| 96 | } |
| 97 | |
| 98 | offline() { |
| 99 | echo -n "Switching $progname to offline mode: " |
| 100 | killproc bpdyndnsd -USR1 |
| 101 | RETVAL=$? |
| 102 | [ $RETVAL -eq 0 ] && success || failure |
| 103 | echo |
| 104 | } |
| 105 | |
| 106 | ## |
| 107 | ## determine what we should do: |
| 108 | ## |
| 109 | case "$1" in |
| 110 | start) |
| 111 | start |
| 112 | ;; |
| 113 | stop) |
| 114 | stop |
| 115 | ;; |
| 116 | status) |
| 117 | status $prog |
| 118 | RETVAL=$? |
| 119 | ;; |
| 120 | restart) |
| 121 | restart |
| 122 | ;; |
| 123 | reload) |
| 124 | reload |
| 125 | ;; |
| 126 | condrestart) |
| 127 | [ -f /var/lock/subsys/bpdyndnsd ] && restart || : |
| 128 | ;; |
| 129 | online) |
| 130 | online |
| 131 | ;; |
| 132 | online_webcheck) |
| 133 | online_webcheck |
| 134 | ;; |
| 135 | offline) |
| 136 | offline |
| 137 | ;; |
| 138 | *) |
| 139 | echo "Usage: bpdyndnsd {start|stop|status|restart|reload|condrestart|online|online_webcheck|offline}" |
| 140 | RETVAL=1 |
| 141 | esac |
| 142 | |
| 143 | exit $RETVAL |