You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.6 KiB
94 lines
2.6 KiB
#!@l_prefix@/bin/openpkg rc |
|
## |
|
## rc.dhcpd -- Run-Commands |
|
## |
|
|
|
%config |
|
dhcpd_enable="$openpkg_rc_def" |
|
dhcpd_flags="-q" |
|
dhcpd_if="" |
|
dhcpd_port="67" |
|
dhcpd_log_prolog="true" |
|
dhcpd_log_epilog="true" |
|
dhcpd_log_numfiles="10" |
|
dhcpd_log_minsize="1M" |
|
dhcpd_log_complevel="9" |
|
|
|
%common |
|
dhcpd_pidfile="@l_prefix@/var/dhcpd/run/dhcpd.pid" |
|
dhcpd_leases="@l_prefix@/var/dhcpd/db/dhcpd.leases" |
|
dhcpd_signal () { |
|
if [ ! -f $dhcpd_pidfile ]; then return 1; fi |
|
kill -$1 `cat $dhcpd_pidfile` |
|
} |
|
dhcpd_start () { |
|
if [ ! -f $dhcpd_leases ]; then |
|
touch $dhcpd_leases |
|
chmod 644 $dhcpd_leases |
|
chown @l_susr@:@l_mgrp@ $dhcpd_leases |
|
fi |
|
local cmd="@l_prefix@/sbin/dhcpd" |
|
cmd="$cmd -f" |
|
cmd="$cmd $dhcpd_flags" |
|
echo ".$dhcpd_flags" | grep -- -p >/dev/null 2>&1 |
|
if [ $? -ne 0 -a ".$dhcpd_port" != . ]; then |
|
cmd="$cmd -p $dhcpd_port" |
|
fi |
|
if [ $# -gt 0 ]; then |
|
cmd="$cmd $@" |
|
fi |
|
( eval "nohup $cmd </dev/null >/dev/null 2>&1 &" |
|
echo $! >$dhcpd_pidfile |
|
) >/dev/null 2>&1 |
|
} |
|
|
|
%status -u @l_susr@ -o |
|
dhcpd_usable="unknown" |
|
dhcpd_active="no" |
|
@l_prefix@/sbin/dhcpd -q -t || dhcpd_usable="no" |
|
[ ".$dhcpd_if" = . ] && dhcpd_usable="no" |
|
rcService dhcpd enable yes && \ |
|
dhcpd_signal 0 && dhcpd_active="yes" |
|
echo "dhcpd_enable=\"$dhcpd_enable\"" |
|
echo "dhcpd_usable=\"$dhcpd_usable\"" |
|
echo "dhcpd_active=\"$dhcpd_active\"" |
|
|
|
%start -u @l_susr@ |
|
rcService dhcpd enable yes || exit 0 |
|
rcService dhcpd usable no && exit 0 |
|
rcService dhcpd active yes && exit 0 |
|
dhcpd_start $dhcpd_if |
|
|
|
%stop -u @l_susr@ |
|
rcService dhcpd enable yes || exit 0 |
|
rcService dhcpd active no && exit 0 |
|
dhcpd_signal TERM |
|
sleep 2 |
|
rm -f $dhcpd_pidfile 2>/dev/null || true |
|
|
|
%restart -u @l_susr@ |
|
rcService dhcpd enable yes || exit 0 |
|
rcService dhcpd active no && exit 0 |
|
rc dhcpd stop start |
|
|
|
%reload -u @l_susr@ |
|
rcService dhcpd enable yes || exit 0 |
|
dhcpd_signal HUP |
|
|
|
%daily -u @l_susr@ |
|
rcService dhcpd enable yes || exit 0 |
|
rcTmp -i |
|
hintfile=`rcTmp -f -n hint` |
|
for tool in dhcpd dhclient dhrelay omshell; do |
|
shtool rotate -f \ |
|
-n $dhcpd_log_numfiles -s $dhcpd_log_minsize -d \ |
|
-z $dhcpd_log_complevel -m 644 -o @l_susr@ -g @l_mgrp@ \ |
|
-P "$dhcpd_log_prolog" \ |
|
-E "$dhcpd_log_epilog; echo 1 >$hintfile" \ |
|
@l_prefix@/var/dhcpd/log/$tool.log |
|
done |
|
if [ -s $hintfile ]; then |
|
rc dhcpd restart |
|
fi |
|
rcTmp -k |
|
|
|
|