summaryrefslogtreecommitdiff
path: root/dhcp/dhcpd
diff options
context:
space:
mode:
Diffstat (limited to 'dhcp/dhcpd')
-rw-r--r--dhcp/dhcpd36
1 files changed, 26 insertions, 10 deletions
diff --git a/dhcp/dhcpd b/dhcp/dhcpd
index bf4fe5f16..0c7898ae4 100644
--- a/dhcp/dhcpd
+++ b/dhcp/dhcpd
@@ -3,21 +3,37 @@
# /etc/rc.d/dhcpd: start/stop dhcp daemon
#
+SSD=/sbin/start-stop-daemon
+PROG=/usr/sbin/dhcpd
+PID=/var/run/dhcpd.pid
+OPTS="-q"
+
case $1 in
start)
- /usr/sbin/dhcpd -q
- ;;
+ $SSD --start --pidfile $PID --exec $PROG -- $OPTS
+ ;;
stop)
- killall -q /usr/sbin/dhcpd
- ;;
+ $SSD --stop --remove-pidfile --retry 10 --pidfile $PID
+ ;;
restart)
- $0 stop
- sleep 1
- $0 start
- ;;
+ $0 stop
+ $0 start
+ ;;
+reload)
+ $SSD --stop --signal HUP --pidfile $PID
+ ;;
+status)
+ $SSD --status --pidfile $PID
+ case $? in
+ 0) echo "$PROG is running" ;;
+ 1) echo "$PROG is not running but the pid file $PID exists" ;;
+ 3) echo "$PROG is not running" ;;
+ 4) echo "Unable to determine the program status" ;;
+ esac
+ ;;
*)
- echo "usage: $0 [start|stop|restart]"
- ;;
+ echo "usage: $0 [start|stop|restart|reload|status]"
+ ;;
esac
# End of file

Generated by cgit