FW: Config help!
Elliott Bujan
ebujan at initialplants.com
Fri Mar 31 17:03:42 UTC 2006
This is the output for ifconfig
[root at frank sbin]# ./ifconfig
eth0 Link encap:Ethernet HWaddr 00:06:29:4E:EF:94
inet addr:192.9.200.19 Bcast:192.9.200.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37838828 errors:0 dropped:0 overruns:0 frame:0
TX packets:40904687 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4204987252 (4010.1 Mb) TX bytes:742522594 (708.1 Mb)
Interrupt:11 Base address:0x4000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:1419445 errors:0 dropped:0 overruns:0 frame:0
TX packets:1419445 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:180550060 (172.1 Mb) TX bytes:180550060 (172.1 Mb)
Eth0 is the only interface other than the loopback; I don't have any other
interface and it is running fine. Like I said, this config worked prior to
3 days ago and I can't think of any changes. The only one is that we
installed a new router at one of the sites (Dallas) and they no longer need
these dhcp services but it's not configured with ip helper-address. This is
beyond my knowledge but I'm learning as I read your responses.
Sorry I trimmed the output, here it is:
#!/bin/sh
#
# dhcpd This shell script takes care of starting and stopping
# dhcpd.
#
# chkconfig: - 65 35
# description: dhcpd provide access to Dynamic Host Control Protocol.
PIDFILE=/var/run/dhcpd.pid
+ PIDFILE=/var/run/dhcpd.pid
DAEMONFILE=/usr/sbin/dhcpd
+ DAEMONFILE=/usr/sbin/dhcpd
CONFIGFILE=/etc/dhcpd.conf
+ CONFIGFILE=/etc/dhcpd.conf
LEASEFILE=/var/lib/dhcp/dhcpd.leases
+ LEASEFILE=/var/lib/dhcp/dhcpd.leases
# Source function library.
. /etc/rc.d/init.d/functions
+ . /etc/rc.d/init.d/functions
#!/bin/bash
#
# functions This file contains functions to be used by most or all
# shell scripts in the /etc/init.d directory.
#
# Version: @(#) /etc/init.d/functions 1.01 26-Oct-1993
#
# Author: Miquel van Smoorenburg, <miquels at drinkel.nl.mugnet.org>
# Hacked by: Greg Galloway and Marc Ewing
#
#
# i18n originally by: Arnaldo Carvalho de Melo <acme at conectiva.com.br>,
# Wanderlei Antonio Cavassin
TEXTDOMAIN=initscripts
++ TEXTDOMAIN=initscripts
TEXTDOMAINDIR=/etc/locale
++ TEXTDOMAINDIR=/etc/locale
# Make sure umask is sane
umask 022
++ umask 022
# First set up a default search path.
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
++ export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
++ PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
# Get a sane screen width
[ -z "${COLUMNS:-}" ] && COLUMNS=80
++ '[' -z '' ']'
++ COLUMNS=80
if [ -f /etc/sysconfig/i18n -a -z "${NOLOCALE:-}" ] ; then
. /etc/sysconfig/i18n
if [ "${LANG:-}" = "ja_JP.eucJP" -a "`/sbin/consoletype`" != "pty" ]; then
unset LANG
elif [ "${LANG:-}" = "ko_KR.eucKR" -a "`/sbin/consoletype`" != "pty" ];
then
unset LANG
elif [ "${LANG:-}" = "zh_CN.GB2312" -a "`/sbin/consoletype`" != "pty" ];
then
unset LANG
elif [ "${LANG:-}" = "zh_TW.Big5" -a "`/sbin/consoletype`" != "pty" ];
then
unset LANG
else
export LANG
fi
fi
++ '[' -f /etc/sysconfig/i18n -a -z '' ']'
++ . /etc/sysconfig/i18n
LANG="en_US"
+++ LANG=en_US
SUPPORTED="en_US:en"
+++ SUPPORTED=en_US:en
SYSFONT="lat0-sun16"
+++ SYSFONT=lat0-sun16
SYSFONTACM="iso01"
+++ SYSFONTACM=iso01
/sbin/consoletype
+++ /sbin/consoletype
++ '[' en_US = ja_JP.eucJP -a pty '!=' pty ']'
/sbin/consoletype
+++ /sbin/consoletype
++ '[' en_US = ko_KR.eucKR -a pty '!=' pty ']'
/sbin/consoletype
+++ /sbin/consoletype
++ '[' en_US = zh_CN.GB2312 -a pty '!=' pty ']'
/sbin/consoletype
+++ /sbin/consoletype
++ '[' en_US = zh_TW.Big5 -a pty '!=' pty ']'
++ export LANG
# Read in our configuration
if [ -z "${BOOTUP:-}" ]; then
if [ -f /etc/sysconfig/init ]; then
. /etc/sysconfig/init
else
# This all seem confusing? Look in /etc/sysconfig/init,
# or in /usr/doc/initscripts-*/sysconfig.txt
BOOTUP=color
RES_COL=60
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
SETCOLOR_FAILURE="echo -en \\033[1;31m"
SETCOLOR_WARNING="echo -en \\033[1;33m"
SETCOLOR_NORMAL="echo -en \\033[0;39m"
LOGLEVEL=1
fi
if [ -x /sbin/consoletype ]; then
if [ "`consoletype`" = "serial" ]; then
BOOTUP=serial
MOVE_TO_COL=
SETCOLOR_SUCCESS=
SETCOLOR_FAILURE=
SETCOLOR_WARNING=
SETCOLOR_NORMAL=
fi
fi
fi
++ '[' -z '' ']'
++ '[' -f /etc/sysconfig/init ']'
++ . /etc/sysconfig/init
# color => new RH6.0 bootup
# verbose => old-style bootup
# anything else => new style bootup without ANSI colors or positioning
BOOTUP=color
+++ BOOTUP=color
# column to start "[ OK ]" label in
RES_COL=60
+++ RES_COL=60
# terminal sequence to move to that column. You could change this
# to something like "tput hpa ${RES_COL}" if your terminal supports it
MOVE_TO_COL="echo -en \\033[${RES_COL}G"
+++ MOVE_TO_COL=echo -en \033[60G
# terminal sequence to set color to a 'success' color (currently: green)
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
+++ SETCOLOR_SUCCESS=echo -en \033[1;32m
# terminal sequence to set color to a 'failure' color (currently: red)
SETCOLOR_FAILURE="echo -en \\033[1;31m"
+++ SETCOLOR_FAILURE=echo -en \033[1;31m
# terminal sequence to set color to a 'warning' color (currently: yellow)
SETCOLOR_WARNING="echo -en \\033[1;33m"
+++ SETCOLOR_WARNING=echo -en \033[1;33m
# terminal sequence to reset to the default color.
SETCOLOR_NORMAL="echo -en \\033[0;39m"
+++ SETCOLOR_NORMAL=echo -en \033[0;39m
# default kernel loglevel on boot (syslog will reset this)
LOGLEVEL=3
+++ LOGLEVEL=3
# Set to anything other than 'no' to allow hotkey interactive startup...
PROMPT=yes
+++ PROMPT=yes
++ '[' -x /sbin/consoletype ']'
consoletype
+++ consoletype
++ '[' pty = serial ']'
if [ "${BOOTUP:-}" != "verbose" ]; then
INITLOG_ARGS="-q"
else
INITLOG_ARGS=
fi
++ '[' color '!=' verbose ']'
++ INITLOG_ARGS=-q
# Check if $pid (could be plural) are running
checkpid() {
while [ "$1" ]; do
[ -d /proc/$1 ] && return 0
shift
done
return 1
}
# A function to start a program.
daemon() {
# Test syntax.
local gotbase=
local base= user= nice= bg= pid
nicelevel=0
while [ "$1" != "${1##[-+]}" ]; do
case $1 in
'') echo $"$0: Usage: daemon [+/-nicelevel] {program}"
return 1;;
--check)
base=$2
gotbase="yes"
shift 2
;;
--check=?*)
base=${1#--check=}
gotbase="yes"
shift
;;
--user)
user=$2
shift 2
;;
--user=?*)
user=${1#--user=}
shift
;;
[-+][0-9]*)
nice="nice -n $1"
shift
;;
*) echo $"$0: Usage: daemon [+/-nicelevel] {program}"
return 1;;
esac
done
# Save basename.
[ -z "$gotbase" ] && base=${1##*/}
# See if it's already running. Look *only* at the pid file.
pid=`pidfileofproc $base`
[ -n "${pid:-}" ] && return
# make sure it doesn't core dump anywhere; while this could mask
# problems with the daemon, it also closes some security problems
ulimit -S -c 0 >/dev/null 2>&1
# Echo daemon
[ "${BOOTUP:-}" = "verbose" ] && echo -n " $base"
# And start it up.
if [ -z "$user" ]; then
$nice initlog $INITLOG_ARGS -c "$*"
else
$nice initlog $INITLOG_ARGS -c "su -s /bin/bash - $user -c
\"$*\""
fi
[ "$?" -eq 0 ] && success $"$base startup" || failure $"$base
startup"
}
# A function to stop a program.
killproc() {
RC=0
# Test syntax.
if [ "$#" -eq 0 ]; then
echo $"Usage: killproc {program} [signal]"
return 1
fi
notset=0
# check for second arg to be kill level
if [ "$2" != "" ] ; then
killlevel=$2
else
notset=1
killlevel="-9"
fi
# Save basename.
base=${1##*/}
# Find pid.
pid=`pidofproc $1`
if [ -z "${pid:-}" ] ; then
pid=`pidofproc $base`
fi
# Kill it.
if [ -n "${pid:-}" ] ; then
[ "$BOOTUP" = "verbose" ] && echo -n "$base "
if [ "$notset" -eq "1" ] ; then
if checkpid $pid 2>&1; then
# TERM first, then KILL if not dead
kill -TERM $pid
usleep 100000
if checkpid $pid && sleep 1 &&
checkpid $pid && sleep 3 &&
checkpid $pid ; then
kill -KILL $pid
usleep 100000
fi
fi
checkpid $pid
RC=$?
[ "$RC" -eq 0 ] && failure $"$base shutdown" ||
success $"$base shutdown"
RC=$((! $RC))
# use specified level only
else
if checkpid $pid >/dev/null 2>&1; then
kill $killlevel $pid
RC=$?
[ "$RC" -eq 0 ] && success $"$base
$killlevel" || failure $"$base $killlevel"
fi
fi
else
failure $"$base shutdown"
RC=1
fi
# Remove pid file if any.
if [ "$notset" = "1" ]; then
rm -f /var/run/$base.pid
fi
return $RC
}
# A function to find the pid of a program. Looks *only* at the pidfile
pidfileofproc() {
local base=${1##*/}
local pid
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: pidfileofproc {program}"
return 1
fi
# First try "/var/run/*.pid" files
if [ -f /var/run/${base}.pid ] ; then
local line p pid=
read line < /var/run/${base}.pid
for p in $line ; do
[ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
done
if [ -n "${pid:-}" ] ; then
echo $pid
return 0
fi
fi
}
# A function to find the pid of a program.
pidofproc() {
base=${1##*/}
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: pidofproc {program}"
return 1
fi
# First try "/var/run/*.pid" files
if [ -f /var/run/${base}.pid ] ; then
local line p pid=
read line < /var/run/${base}.pid
for p in $line ; do
[ -z "${p//[0-9]/}" -a -d /proc/$p ] && pid="$pid $p"
done
if [ -n "${pid:-}" ] ; then
echo $pid
return 0
fi
fi
# Next try "pidof"
pidof -o $$ -o $PPID -o %PPID -x $1 || \
pidof -o $$ -o $PPID -o %PPID -x ${base}
}
status() {
local base=${1##*/}
local pid
# Test syntax.
if [ "$#" = 0 ] ; then
echo $"Usage: status {program}"
return 1
fi
# First try "pidof"
pid=`pidof -o $$ -o $PPID -o %PPID -x $1 || \
pidof -o $$ -o $PPID -o %PPID -x ${base}`
if [ "$pid" != "" ] ; then
echo $"${base} (pid $pid) is running..."
return 0
fi
# Next try "/var/run/*.pid" files
if [ -f /var/run/${base}.pid ] ; then
read pid < /var/run/${base}.pid
if [ "$pid" != "" ] ; then
echo $"${base} dead but pid file exists"
return 1
fi
fi
# See if /var/lock/subsys/${base} exists
if [ -f /var/lock/subsys/${base} ]; then
echo $"${base} dead but subsys locked"
return 2
fi
echo $"${base} is stopped"
return 3
}
echo_success() {
[ "$BOOTUP" = "color" ] && $MOVE_TO_COL
echo -n "[ "
[ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS
echo -n $"OK"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo -n " ]"
echo -ne "\r"
return 0
}
echo_failure() {
[ "$BOOTUP" = "color" ] && $MOVE_TO_COL
echo -n "["
[ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE
echo -n $"FAILED"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
echo -ne "\r"
return 1
}
echo_passed() {
[ "$BOOTUP" = "color" ] && $MOVE_TO_COL
echo -n "["
[ "$BOOTUP" = "color" ] && $SETCOLOR_WARNING
echo -n $"PASSED"
[ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL
echo -n "]"
echo -ne "\r"
return 1
}
# Log that something succeeded
success() {
if [ -z "${IN_INITLOG:-}" ]; then
initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
else
# silly hack to avoid EPIPE killing rc.sysinit
trap "" SIGPIPE
echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
trap - SIGPIPE
fi
[ "$BOOTUP" != "verbose" ] && echo_success
return 0
}
# Log that something failed
failure() {
rc=$?
if [ -z "${IN_INITLOG:-}" ]; then
initlog $INITLOG_ARGS -n $0 -s "$1" -e 2
else
trap "" SIGPIPE
echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 2" >&21
trap - SIGPIPE
fi
[ "$BOOTUP" != "verbose" ] && echo_failure
return $rc
}
# Log that something passed, but may have had errors. Useful for fsck
passed() {
rc=$?
if [ -z "${IN_INITLOG:-}" ]; then
initlog $INITLOG_ARGS -n $0 -s "$1" -e 1
else
trap "" SIGPIPE
echo "$INITLOG_ARGS -n $0 -s \"$1\" -e 1" >&21
trap - SIGPIPE
fi
[ "$BOOTUP" != "verbose" ] && echo_passed
return $rc
}
# Run some action. Log its output.
action() {
STRING=$1
echo -n "$STRING "
shift
initlog $INITLOG_ARGS -c "$*" && success $"$STRING" || failure $"$STRING"
rc=$?
echo
return $rc
}
# returns OK if $1 contains $2
strstr() {
[ "$1" = "$2" ] && return 0
slice=${1#*$2*}
[ "$slice" = "$1" ] && return 1
return 0
}
# Confirm whether we really want to run this service
confirm() {
local YES=$"yY"
local NO=$"nN"
local CONT=$"cC"
while : ; do
echo -n $"Start service $1 (Y)es/(N)o/(C)ontinue? [Y] "
read answer
if strstr "$YES" "$answer" || [ "$answer" = "" ] ; then
return 0
elif strstr "$CONT" "$answer" ; then
return 2
elif strstr "$NO" "$answer" ; then
return 1
fi
done
}
# Source networking configuration.
. /etc/sysconfig/network
+ . /etc/sysconfig/network
NETWORKING=yes
++ NETWORKING=yes
HOSTNAME=frank
++ HOSTNAME=frank
GATEWAY=192.9.200.253
++ GATEWAY=192.9.200.253
SUBNET=255.255.255.0
++ SUBNET=255.255.255.0
. /etc/sysconfig/dhcpd
+ . /etc/sysconfig/dhcpd
DHCPDARGS=eth0
++ DHCPDARGS=eth0
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
+ '[' yes = no ']'
[ -f ${DAEMONFILE} ] || exit 0
+ '[' -f /usr/sbin/dhcpd ']'
[ -f ${CONFIGFILE} ] || exit 0
+ '[' -f /etc/dhcpd.conf ']'
[ -f ${LEASEFILE} ] || exit 0
+ '[' -f /var/lib/dhcp/dhcpd.leases ']'
RETVAL=0
+ RETVAL=0
prog="dhcpd"
+ prog=dhcpd
start() {
# Start daemons.
echo -n $"Starting $prog: "
daemon ${DAEMONFILE} -cf ${CONFIGFILE} -lf ${LEASEFILE} ${DHCPDARGS}
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/dhcpd
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $prog: "
killproc dhcpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dhcpd
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/dhcpd ]; then
stop
start
RETVAL=$?
fi
;;
status)
status dhcpd
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac
+ start
+ echo -n 'Starting dhcpd: '
Starting dhcpd: + daemon /usr/sbin/dhcpd -cf /etc/dhcpd.conf -lf
/var/lib/dhcp/dhcpd.leases eth0
+ local gotbase=
+ local base= user= nice= bg= pid
+ nicelevel=0
+ '[' /usr/sbin/dhcpd '!=' /usr/sbin/dhcpd ']'
+ '[' -z '' ']'
+ base=dhcpd
pidfileofproc $base
++ pidfileofproc dhcpd
++ local base=dhcpd
++ local pid
++ '[' 1 = 0 ']'
++ '[' -f /var/run/dhcpd.pid ']'
++ local line p pid=
++ read line
++ '[' -z '' -a -d /proc/11375 ']'
++ pid= 11375
++ '[' -n ' 11375' ']'
++ echo 11375
++ return 0
+ pid=11375
+ '[' -n 11375 ']'
+ return
+ RETVAL=0
+ echo
+ '[' 0 -eq 0 ']'
+ touch /var/lock/subsys/dhcpd
+ return 0
exit $RETVAL
+ exit 0
[root at frank sbin]#
-----Original Message-----
From: dhcp-users-bounce at isc.org [mailto:dhcp-users-bounce at isc.org] On Behalf
Of Simon Hobson
Sent: Friday, March 31, 2006 10:51 AM
To: dhcp-users at isc.org
Subject: RE: FW: Config help!
Elliott Bujan wrote:
>+ daemon /usr/sbin/dhcpd -cf /etc/dhcpd.conf -lf
>/var/lib/dhcp/dhcpd.leases eth0
This is the key line. It is starting the server to listen only on
eth0 - so you must have a subnet to match eth0.
If you want to use anything other than eth0 then you'll need to edit
the config file for the script - probably something like
/etc/default/dhcpd (I could tell you exactly, but that's part of the
shell output you've trimmed).
Simon
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
More information about the dhcp-users
mailing list