Debian init.d script won't start service

Tim Gavin livewire98801 at gmail.com
Fri Jan 14 20:20:06 UTC 2011


I just had to move my DHCP server from a dying UPS.  When I started the 
server back up, the service didn't come up.  I restarted the server 
after a couple of failures to bring it up with /etc/init.d/dhcp3-server 
start (and restart).

ps aux didn't show any DHCP processes.

My attempts to restart the service didn't kick the log either.  No 
failure messages from anything.  I was able to start the service manually:

sudo /usr/sbin/dhcpd3 -cf /etc/dhcp3/dhcpd.conf -lf 
/var/lib/dhcp3/dhcpd.leases


But I never could figure out why the init script won't work :-/

Can anyone look at this and tell me what's wrong with it?:





cat /etc/init.d/dhcp3-server
----------------------------------------------------
#!/bin/sh
#
# $Id: dhcp3-server.init.d,v 1.4 2003/07/13 19:12:41 mdz Exp $
#

### BEGIN INIT INFO
# Provides:          dhcp3-server
# Required-Start:    $remote_fs $network $syslog
# Required-Stop:     $remote_fs $network $syslog
# Should-Start:      $local_fs slapd
# Should-Stop:       $local_fs slapd
# Default-Start:     2 3 4 5
# Default-Stop:      1
# Short-Description: DHCP server
# Description:       Dynamic Host Configuration Protocol Server
### END INIT INFO

PATH=/sbin:/bin:/usr/sbin:/usr/bin

test -f /usr/sbin/dhcpd3 || exit 0

# It is not safe to start if we don't have a default configuration...
#if [ ! -f /etc/default/dhcp3-server ]; then
#       echo "/etc/default/dhcp3-server does not exist! - Aborting..."
#       echo "Run 'dpkg-reconfigure dhcp3-server' to fix the problem."
         exit 0
#fi

. /lib/lsb/init-functions

# Read init script configuration (so far only interfaces the daemon
# should listen on.)
#. /etc/default/dhcp3-server

NAME=dhcpd3
DESC="DHCP server"
DHCPDPID=/var/run/dhcpd.pid

test_config()
{
         if ! /usr/sbin/dhcpd3 -t -q > /dev/null 2>&1; then
                 echo "dhcpd self-test failed. Please fix the config file."
                 echo "The error was: "
                 /usr/sbin/dhcpd3 -t
                 exit 1
         fi
}

# single arg is -v for messages, -q for none
check_status()
{
     if [ ! -r "$DHCPDPID" ]; then
         test "$1" != -v || echo "$NAME is not running."
         return 3
     fi
     if read pid < "$DHCPDPID" && ps -p "$pid" > /dev/null 2>&1; then
         test "$1" != -v || echo "$NAME is running."
         return 0
     else
         test "$1" != -v || echo "$NAME is not running but $DHCPDPID 
exists."
         return 1
     fi
}

case "$1" in
         start)
                 test_config
                 log_daemon_msg "Starting $DESC" "$NAME"
                 start-stop-daemon --start --quiet --pidfile $DHCPDPID \
                         --exec /usr/sbin/dhcpd3 -- -q $INTERFACES
                 sleep 2

                 if check_status -q; then
                         log_end_msg 0
                 else
                         log_failure_msg "check syslog for diagnostics."
                         log_end_msg 1
                         exit 1
                 fi
                 ;;
         stop)
                 log_daemon_msg "Stopping $DESC" "$NAME"
                 start-stop-daemon --stop --quiet --pidfile $DHCPDPID
                 log_end_msg $?
                 rm -f "$DHCPDPID"
                 ;;
         restart | force-reload)
                 test_config
                 $0 stop
                 sleep 2
                 $0 start
                 if [ "$?" != "0" ]; then
                         exit 1
                 fi
                 ;;
         status)
                 echo -n "Status of $DESC: "
                 check_status -v
                 exit "$?"
                 ;;
         *)
                 echo "Usage: $0 {start|stop|restart|force-reload|status}"
                 exit 1
esac

exit 0
---------------------------------------------------------


Thanks!!!



More information about the dhcp-users mailing list