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