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