diff options
Diffstat (limited to 'dhcp/dhcpd')
-rw-r--r-- | dhcp/dhcpd | 36 |
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 |