dhcpd/rc.dhcpd

Wed, 07 Jan 2009 00:25:41 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 07 Jan 2009 00:25:41 +0100
changeset 20
8adc5213fd55
child 354
4ca17af53013
permissions
-rw-r--r--

Import package vendor original specs for necessary manipulations.

michael@13 1 #!@l_prefix@/bin/openpkg rc
michael@13 2 ##
michael@13 3 ## rc.dhcpd -- Run-Commands
michael@13 4 ##
michael@13 5
michael@13 6 %config
michael@13 7 dhcpd_enable="$openpkg_rc_def"
michael@13 8 dhcpd_flags="-q"
michael@13 9 dhcpd_if=""
michael@13 10 dhcpd_port="67"
michael@13 11 dhcpd_log_prolog="true"
michael@13 12 dhcpd_log_epilog="true"
michael@13 13 dhcpd_log_numfiles="10"
michael@13 14 dhcpd_log_minsize="1M"
michael@13 15 dhcpd_log_complevel="9"
michael@13 16
michael@13 17 %common
michael@13 18 dhcpd_pidfile="@l_prefix@/var/dhcpd/run/dhcpd.pid"
michael@13 19 dhcpd_leases="@l_prefix@/var/dhcpd/db/dhcpd.leases"
michael@13 20 dhcpd_signal () {
michael@13 21 [ -f $dhcpd_pidfile ] && kill -$1 `cat $dhcpd_pidfile`
michael@13 22 }
michael@13 23 dhcpd_start () {
michael@13 24 if [ ! -f $dhcpd_leases ]; then
michael@13 25 touch $dhcpd_leases
michael@13 26 chmod 644 $dhcpd_leases
michael@13 27 chown @l_susr@:@l_mgrp@ $dhcpd_leases
michael@13 28 fi
michael@13 29 local cmd="@l_prefix@/sbin/dhcpd"
michael@13 30 cmd="$cmd $dhcpd_flags"
michael@13 31 echo ".$dhcpd_flags" | grep -- -p >/dev/null 2>&1
michael@13 32 if [ $? -ne 0 -a ".$dhcpd_port" != . ]; then
michael@13 33 cmd="$cmd -p $dhcpd_port"
michael@13 34 fi
michael@13 35 if [ $# -gt 0 ]; then
michael@13 36 cmd="$cmd $@"
michael@13 37 fi
michael@13 38 cmd="$cmd >/dev/null 2>&1"
michael@13 39 eval $cmd
michael@13 40 }
michael@13 41
michael@13 42 %status -u @l_susr@ -o
michael@13 43 dhcpd_usable="unknown"
michael@13 44 dhcpd_active="no"
michael@13 45 dhcpd_start -q -t || dhcpd_usable="no"
michael@13 46 [ ".$dhcpd_if" = . ] && dhcpd_usable="no"
michael@13 47 rcService dhcpd enable yes && \
michael@13 48 dhcpd_signal 0 && dhcpd_active="yes"
michael@13 49 echo "dhcpd_enable=\"$dhcpd_enable\""
michael@13 50 echo "dhcpd_usable=\"$dhcpd_usable\""
michael@13 51 echo "dhcpd_active=\"$dhcpd_active\""
michael@13 52
michael@13 53 %start -u @l_susr@
michael@13 54 rcService dhcpd enable yes || exit 0
michael@13 55 rcService dhcpd usable no && exit 0
michael@13 56 rcService dhcpd active yes && exit 0
michael@13 57 dhcpd_start $dhcpd_if
michael@13 58
michael@13 59 %stop -u @l_susr@
michael@13 60 rcService dhcpd enable yes || exit 0
michael@13 61 rcService dhcpd active no && exit 0
michael@13 62 dhcpd_signal TERM
michael@13 63 sleep 2
michael@13 64 rm -f $dhcpd_pidfile 2>/dev/null || true
michael@13 65
michael@13 66 %restart -u @l_susr@
michael@13 67 rcService dhcpd enable yes || exit 0
michael@13 68 rcService dhcpd active no && exit 0
michael@13 69 rc dhcpd stop start
michael@13 70
michael@13 71 %reload -u @l_susr@
michael@13 72 rcService dhcpd enable yes || exit 0
michael@13 73 dhcpd_signal HUP
michael@13 74
michael@13 75 %daily -u @l_susr@
michael@13 76 rcService dhcpd enable yes || exit 0
michael@13 77 rcTmp -i
michael@13 78 hintfile=`rcTmp -f -n hint`
michael@13 79 for tool in dhcpd dhclient dhrelay omshell; do
michael@13 80 shtool rotate -f \
michael@13 81 -n $dhcpd_log_numfiles -s $dhcpd_log_minsize -d \
michael@13 82 -z $dhcpd_log_complevel -m 644 -o @l_susr@ -g @l_mgrp@ \
michael@13 83 -P "$dhcpd_log_prolog" \
michael@13 84 -E "$dhcpd_log_epilog; echo 1 >$hintfile" \
michael@13 85 @l_prefix@/var/dhcpd/log/$tool.log
michael@13 86 done
michael@13 87 if [ -s $hintfile ]; then
michael@13 88 rc dhcpd restart
michael@13 89 fi
michael@13 90 rcTmp -k
michael@13 91

mercurial