Код: Выделить всё
router# uname -a
FreeBSD router.xxxx.local 5.5-RELEASE
Модератор: terminus
Код: Выделить всё
router# uname -a
FreeBSD router.xxxx.local 5.5-RELEASE
сервисы запускаються наскоко я помню всегда позже чем поднимаються интерфейсыЕсть комп с большим кол-вом виланов и при загрузке dhcpd пытается стартовать раньше, чем поднимаются интерфейсы, соответственно запуск не проходит.
В синтаксисе проблем нет, в поднятии интерфейсов тоже...вы не путаете время поднятия просто интерфейсов и интерфейсов виланов, коих на моем транковом роутере около 40 шт. ? Если бы я не мог прикрутить dhcpd к одному обычному и-фейсу сетевой карты, я бы сюда не писал....Приложить rc.conf ?paradox писал(а):сервисы запускаються наскоко я помню всегда позже чем поднимаються интерфейсыЕсть комп с большим кол-вом виланов и при загрузке dhcpd пытается стартовать раньше, чем поднимаются интерфейсы, соответственно запуск не проходит.
так что ищите ошибку вподнятии интерфейса
или ситаксисе rc.conf
какой кошмаринтерфейсов виланов, коих на моем транковом роутере около 40 шт.
paradox писал(а):какой кошмаринтерфейсов виланов, коих на моем транковом роутере около 40 шт.
ну вы извращенец
а подробнее - где почитать, может знаете, или примерчик....тогда три варианта
1 патчить сервис поднятия интерфейсов под себя
все чаще прихожу к этой мысли....2 поднимать вланы и dhcp уже своим скриптом отдельно
и тут бы подсказка не помешала, ибо не делал такого никогда....3 переделать стартап dhcp так что бы он проверял поднятие всех вланов и токо после того старт
Код: Выделить всё
ifconfig_sk0="inet 192.168.100.100 netmask 255.255.255.0"
ifconfig_sk1="inet 10.10.10.20 netmask 255.255.255.0"
cloned_interfaces="vlan2 vlan3 vlan4 vlan5 vlan7 vlan8 vlan9 vlan11 vlan12 vlan13 vlan14 vlan15 vlan16 vlan17 vlan18 vlan19 vlan20 vlan21 vlan22 и так далее..."
ifconfig_vlan2="inet 192.168.0.6 netmask 255.255.255.0 vlan 2 vlandev sk0"
ifconfig_vlan3="inet 192.168.52.9 netmask 255.255.255.0 vlan 3 vlandev sk0"
ifconfig_vlan4="inet 192.168.53.9 netmask 255.255.255.0 vlan 4 vlandev sk0"
ifconfig_vlan5="inet 192.168.54.9 netmask 255.255.255.0 vlan 5 vlandev sk0"
ifconfig_vlan7="inet 192.168.56.9 netmask 255.255.255.0 vlan 7 vlandev sk0"
ifconfig_vlan8="inet 192.168.57.9 netmask 255.255.255.0 vlan 8 vlandev sk0"
ifconfig_vlan9="inet 192.168.58.9 netmask 255.255.255.0 vlan 9 vlandev sk0"
ifconfig_vlan11="inet 192.168.60.9 netmask 255.255.255.0 vlan 11 vlandev sk0"
ifconfig_vlan12="inet 192.168.61.9 netmask 255.255.255.0 vlan 12 vlandev sk0"
ifconfig_vlan13="inet 192.168.62.9 netmask 255.255.255.0 vlan 13 vlandev sk0"
ifconfig_vlan14="inet 192.168.63.9 netmask 255.255.255.0 vlan 14 vlandev sk0"
ifconfig_vlan15="inet 192.168.64.9 netmask 255.255.255.0 vlan 15 vlandev sk0"
ifconfig_vlan16="inet 192.168.65.9 netmask 255.255.255.0 vlan 16 vlandev sk0"
ifconfig_vlan17="inet 192.168.66.9 netmask 255.255.255.0 vlan 17 vlandev sk0"
ifconfig_vlan18="inet 192.168.67.9 netmask 255.255.255.0 vlan 18 vlandev sk0"
ifconfig_vlan19="inet 192.168.68.9 netmask 255.255.255.0 vlan 19 vlandev sk0"
ifconfig_vlan20="inet 192.168.69.9 netmask 255.255.255.0 vlan 20 vlandev sk0"
ifconfig_vlan21="inet 192.168.70.9 netmask 255.255.255.0 vlan 21 vlandev sk0"
ifconfig_vlan22="inet 192.168.71.9 netmask 255.255.255.0 vlan 22 vlandev sk0"
ifconfig_vlan23="inet 192.168.72.9 netmask 255.255.255.0 vlan 23 vlandev sk0"
ifconfig_vlan24="inet 192.168.73.9 netmask 255.255.255.0 vlan 24 vlandev sk0"
ifconfig_vlan25="inet 192.168.74.9 netmask 255.255.255.0 vlan 25 vlandev sk0"
#ifconfig_vlan26="inet 192.168.75.9 netmask 255.255.255.0 vlan 26 vlandev sk0"
ifconfig_vlan27="inet 192.168.76.9 netmask 255.255.255.0 vlan 27 vlandev sk0"
ifconfig_vlan28="inet 192.168.77.9 netmask 255.255.255.0 vlan 28 vlandev sk0"
#ifconfig_vlan30="inet 192.168.79.9 netmask 255.255.255.0 vlan 30 vlandev sk0"
ifconfig_vlan102="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 102 vlandev sk1"
ifconfig_vlan103="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 103 vlandev sk1"
ifconfig_vlan104="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 104 vlandev sk1"
ifconfig_vlan105="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 105 vlandev sk1"
ifconfig_vlan107="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 107 vlandev sk1"
ifconfig_vlan108="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 108 vlandev sk1"
ifconfig_vlan109="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 109 vlandev sk1"
ifconfig_vlan113="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 113 vlandev sk1"
ifconfig_vlan114="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 114 vlandev sk1"
ifconfig_vlan115="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 115 vlandev sk1"
ifconfig_vlan116="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 116 vlandev sk1"
ifconfig_vlan118="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 118 vlandev sk1"
ifconfig_vlan117="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 117 vlandev sk1"
ifconfig_vlan119="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 119 vlandev sk1"
ifconfig_vlan120="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 120 vlandev sk1"
ifconfig_vlan121="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 121 vlandev sk1"
ifconfig_vlan122="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 122 vlandev sk1"
ifconfig_vlan123="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 123 vlandev sk1"
ifconfig_vlan124="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 124 vlandev sk1"
ifconfig_vlan125="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 125 vlandev sk1"
ifconfig_vlan126="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 126 vlandev sk1"
ifconfig_vlan127="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 127 vlandev sk1"
ifconfig_vlan128="inet xxx.xxx.xxx.xxx netmask 255.255.255.248 vlan 128 vlandev sk1"
sshd_enable="YES"
defaultrouter="xxx.xxx.xxx.xxx"
hostname="router.xxx.local"
gateway_enable="YES"
ntpdate_enable="YES"
ntpdate_flags="-b 195.182.143.162"
ntpd_enable="YES"
ntpd_flags="-c /etc/ntp.conf -l /var/log/ntpd.log -p /var/run/ntpd.pid"
router_enable="YES"
router="/sbin/routed"
router_flags="-q"
knockd_enable="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_logging="YES"
tcp_drop_synfin="YES"
natd_enable="YES"
font8x14="cp866-8x14"
font8x16="cp866b-8x16"
font8x8="cp866-8x8"
keymap="ru.koi8-r"
keyrate="fast"
scrnmap="koi8-r2cp866"
dhcpd_enable="YES"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_ifaces="vlan2"
named_enable="YES"
named_flags="-u bind"
Код: Выделить всё
ls -l /usr/local/etc/rc.d/ | grep dhcp
Код: Выделить всё
sh /usr/local/etc/rc.d/dhcp restart
-r-xr-xr-x 1 root wheel 16497 May 12 17:53 isc-dhcpdparadox писал(а):Код: Выделить всё
ls -l /usr/local/etc/rc.d/ | grep dhcp
если так, как у тебя написано, то нет...а вообще - да:а если ручками пускатьона на екран пишет что то ?Код: Выделить всё
sh /usr/local/etc/rc.d/dhcp restart
Код: Выделить всё
router# sh /usr/local/etc/rc.d/dhcp restart
/usr/local/etc/rc.d/dhcp: Can't open /usr/local/etc/rc.d/dhcp: No such file or directory
router# sh /usr/local/etc/rc.d/isc-dhcpd restart
Stopping dhcpd.
Starting dhcpd.
Internet Systems Consortium DHCP Server V3.0.7
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
Wrote 43 leases to leases file.
Listening on BPF/vlan2/00:1c:f0:0b:be:25/192.168.0/24
Sending on BPF/vlan2/00:1c:f0:0b:be:25/192.168.0/24
Sending on Socket/fallback/fallback-net
Код: Выделить всё
less /usr/local/etc/rc.d/isc-dhcpd
paradox писал(а):или как тамКод: Выделить всё
less /usr/local/etc/rc.d/isc-dhcpd
Код: Выделить всё
#! /bin/sh
#
# $FreeBSD: ports/net/isc-dhcp30-server/files/isc-dhcpd.in,v 1.6 2009/01/12 15:17:52 stefan Exp $
#
# PROVIDE: dhcpd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable dhcpd:
#
# dhcpd_enable="YES"
#
. /etc/rc.subr
name=dhcpd
paranoia=YES # compiled in paranoia?
jail=NO # compiled in jail?
load_rc_config ${name}
# override these variables in /etc/rc.conf
dhcpd_enable=${dhcpd_enable:-"NO"}
dhcpd_flags=${dhcpd_flags:-} # -q -early_chroot # command option(s)
dhcpd_conf=${dhcpd_conf:-/usr/local/etc/${name}.conf} # configuration file
dhcpd_ifaces=${dhcpd_ifaces:-} # ethernet interface(s)
dhcpd_withumask=${dhcpd_withumask:-022} # file creation mask
dhcpd_chuser_enable=${dhcpd_chuser_enable:-"YES"} # runs w/o privileges?
dhcpd_withuser=${dhcpd_withuser:-${name}} # user name to run as
dhcpd_withgroup=${dhcpd_withgroup:-${name}} # group name to run as
dhcpd_chroot_enable=${dhcpd_chroot_enable:-"NO"} # runs chrooted?
dhcpd_devfs_enable=${dhcpd_devfs_enable:-"YES"} # devfs if available?
dhcpd_makedev_enable=${dhcpd_makedev_enable:-"NO"} # MAKEDEV instead of devfs?
dhcpd_rootdir=${dhcpd_rootdir:-/var/db/${name}} # directory to run in
dhcpd_includedir=${dhcpd_includedir:-} # directory for included config files
# untested
dhcpd_jail_enable=${dhcpd_jail_enable:-"NO"} # runs imprisoned?
dhcpd_hostname=${dhcpd_hostname:-} # jail hostname
dhcpd_ipaddress=${dhcpd_ipaddress:-} # jail ip address
safe_run () # rc command [args...]
{
local _rc
_rc=$1
shift
if [ "${_rc}" -eq 0 ]; then
debug safe_run: "$@"
"$@" || _rc=1
else
warn safe_run: "$@"
fi
return ${_rc}
}
precious () # entry...
{
local _entry _rc
_rc=0
for _entry; do
# do nothing if /dev, /var/run or /var/db
echo ${_entry} | egrep -q '^//*(dev|var//*(run|db))?/*$' || _rc=1
done
debug precious: "$@" rc=${_rc}
return ${_rc}
}
lsmod () # user group file...
{
local _entry _user _group _rc
_user=$1 _group=$2
shift 2
_rc=0
for _entry; do
ls -ld ${_entry} 2> /dev/null |
awk -v u=${_user} -v g=${_group} '{
exit ((u && $3 != u) || (g && $4 != g))
}' || _rc=1
done
debug lsmod: "$@" rc=${_rc}
return ${_rc}
}
safe_chmog () # entry...
{
local _entry _user _group _usergroup _rc
_user=${dhcpd_withuser}
_group=${dhcpd_withgroup}
_rc=0
if [ -n "${_user}" -o -n "${_group}" ]; then
_usergroup=${_user}${_group:+:${_group}}
for _entry; do
if [ -d ${_entry} ] && mounted ${_entry}; then
continue
fi
if [ -e ${_entry} ] &&
! precious ${_entry} &&
! lsmod ${_user} ${_group} ${_entry} &&
! safe_run ${_rc} chown ${_usergroup} ${_entry}; then
warn "unable to change permissions of ${_entry}"
_rc=1
fi
done
fi
return ${_rc}
}
safe_mkdir () # dir...
{
local _dir _rc
_rc=0
for _dir; do
if [ ! -d ${_dir} ] &&
! precious ${_dir} &&
! safe_run ${_rc} mkdir -p ${_dir}; then
err 1 "unable to create directory ${_dir}"
_rc=1
fi
done
safe_run ${_rc} safe_chmog "$@" || _rc=1
return ${_rc}
}
safe_rmdir () # dir...
{
local _dir _rc
_rc=0
for _dir; do
if [ -d ${_dir} ] &&
! precious ${_dir} &&
! mounted ${_dir}; then
if safe_run ${_rc} rmdir ${_dir}; then
safe_run ${_rc} safe_rmdir ${_dir%/*} || _rc=1
else
warn "unable to remove directory ${_dir}"
_rc=1
fi
fi
done
return ${_rc}
}
safe_touch () # file...
{
local _file _rc
_rc=0
for _file; do
if [ ! -e ${_file} ] &&
! safe_run ${_rc} touch ${_file}; then
err 1 "unable to create file ${_file}"
_rc=1
fi
done
safe_run ${_rc} safe_chmog "$@" || _rc=1
return ${_rc}
}
safe_remove () # entry...
{
local _entry _rc
_rc=0
for _entry; do
if [ -f ${_entry} ]; then
if ! safe_run ${_rc} rm -f ${_entry}; then
warn "unable to remove file ${_entry}"
_rc=1
fi
elif [ -d ${_entry} ] &&
! precious ${_entry} &&
! mounted ${_entry}; then
if ! safe_run ${_rc} rm -rf ${_entry}; then
warn "unable to remove directory ${_entry}"
_rc=1
fi
fi
done
return ${_rc}
}
safe_copy () # src dst
{
local _src _dst _rc
_src=$1 _dst=$2
_rc=0
if [ -f ${_src} ]; then
if ! safe_run ${_rc} safe_remove ${_dst} ||
! safe_run ${_rc} cp -p ${_src} ${_dst}; then
err 1 "unable to copy file ${_src} to ${_dst}"
_rc=1
fi
safe_run ${_rc} safe_chmog ${_dst} || _rc=1
elif [ -d ${_src} ] &&
! precious ${_dst} &&
! mounted ${_dst}; then
if ! safe_run ${_rc} pax -rw -pe -ts "|^${_src}||" \
${_src} ${_dst}; then
err 1 "unable to copy directory ${_src} to ${_dst}"
_rc=1
fi
else
err 1 "unable to copy ${_src} to ${_dst}" \
"-- not a file or a directory"
_rc=1
fi
return ${_rc}
}
mounted () # dir...
{
local _rc
_rc=1
if checkyesno dhcpd_devfs_enable ||
checkyesno dhcpd_jail_enable; then
mount -t devfs | awk '
BEGIN { n = ARGC; ARGC = 2 }
{ for (i = 2; i != n; i++) if ($3 == ARGV[i]) exit 1 }
' - "$@" || _rc=0
fi
debug mounted: "$@" rc=${_rc}
return ${_rc}
}
safe_mount () # dir
{
local _dir _rc
_dir=$1
_rc=0
if checkyesno dhcpd_devfs_enable &&
! mounted ${_dir} &&
! safe_run ${_rc} mount -t devfs devfs ${_dir}; then
err 1 "unable to mount ${_dir}"
_rc=1
fi
return ${_rc}
}
safe_umount () # dir
{
local _dir _rc
_dir=$1
_rc=0
if checkyesno dhcpd_devfs_enable &&
! mounted ${_dir} &&
! safe_run ${_rc} mount -t devfs devfs ${_dir}; then
err 1 "unable to mount ${_dir}"
_rc=1
fi
return ${_rc}
}
safe_umount () # dir
{
local _dir _rc
_dir=$1
_rc=0
if checkyesno dhcpd_devfs_enable &&
mounted ${_dir} &&
! safe_run ${_rc} umount ${_dir}; then
warn "unable to unmount ${_dir}"
_rc=1
fi
return ${_rc}
}
safe_useradd ()
{
local _user _group _home _shell _gecos _gid _usr
_user=$1 _group=$2 _gecos=${3:-"& daemon"}
_uid=$4 _gid=$5
_home=${6:-/nonexistent} _shell=${7:-/usr/sbin/nologin}
if [ -n "${_group}" ]; then
if pw group show ${_group} 2>/dev/null; then
echo "You already have a group \"${_group}\"," \
"so I will use it."
elif pw groupadd ${_group} -g ${_gid} -h -; then
echo "Added group \"${_group}\"."
else
echo "Adding group \"${_group}\" failed..."
echo "Please create it, and try again."
exit 1
fi
fi
if [ -n "${_user}" ]; then
if pw user show ${_user} 2>/dev/null; then
echo "You already have a user \"${_user}\"," \
"so I will use it."
elif pw useradd ${_user} -u ${_uid} -g ${_group} -h - \
-d ${_home} -s ${_shell} -c "${_gecos}"; then
echo "Added user \"${_user}\"."
else
echo "Adding user \"${_user}\" failed..."
echo "Please create it, and try again."
exit 1
fi
fi
}
check_chuser ()
{
if checkyesno paranoia; then
if checkyesno dhcpd_chuser_enable &&
[ -z "${dhcpd_withuser}" -a -z "${dhcpd_withgroup}" ]; then
err 1 "one of dhcpd_withuser and dhcpd_withgroup" \
"must be set if dhcpd_chuser_enable is enabled"
fi
else
if checkyesno dhcpd_chuser_enable; then
warn "dhcpd_chuser_enable disabled -- not compiled in"
dhcpd_chuser_enable=NO
fi
fi
}
check_jail ()
{
if checkyesno paranoia && checkyesno jail; then
if checkyesno dhcpd_jail_enable &&
! checkyesno dhcpd_chroot_enable; then
warn "dhcpd_chroot_enable implied by dhcpd_jail_enable"
dhcpd_chroot_enable=YES
fi
if checkyesno dhcpd_jail_enable &&
[ -n "${dhcpd_hostname}" -a -z "${dhcpd_ipaddress}" ] ||
[ -z "${dhcpd_hostname}" -a -n "${dhcpd_ipaddress}" ]; then
err 1 "both dhcpd_hostname and dhcpd_ipaddress" \
"must be set if dhcpd_jail_enable is enabled"
fi
else
if checkyesno dhcpd_jail_enable; then
warn "dhcpd_jail_enable disabled -- not compiled in"
dhcpd_jail_enable=NO
fi
fi
}
check_chroot ()
{
if checkyesno paranoia; then
if checkyesno dhcpd_chroot_enable; then
if [ -z "${dhcpd_rootdir}" ]; then
err 1 "dhcpd_rootdir must be set" \
"if dhcpd_chroot_enable is enabled"
fi
if checkyesno dhcpd_devfs_enable &&
checkyesno dhcpd_makedev_enable; then
err 1 "dhcpd_devfs_enable and dhcpd_makedev_enable" \
"are mutually exclusive. enable only one!"
fi
if test `uname -r | cut -c 1` -le 6; then
if checkyesno dhcpd_devfs_enable &&
! ( type mount_devfs ) > /dev/null 2>&1;
then
warn "dhcpd_devfs_enable disabled" \
"-- not available"
dhcpd_devfs_enable=NO
fi
fi
if checkyesno dhcpd_makedev_enable &&
! [ -x ${__dhcpd_devdir}/MAKEDEV ]; then
warn "dhcpd_makedev_enable disabled" \
"-- not available"
dhcpd_makedev_enable=NO
fi
else
dhcpd_devfs_enable=NO
dhcpd_makedev_enable=NO
fi
else
if checkyesno dhcpd_chroot_enable; then
warn "dhcpd_chroot_enable disabled -- not compiled in"
dhcpd_chroot_enable=NO
fi
dhcpd_devfs_enable=NO
dhcpd_makedev_enable=NO
fi
}
rcvar_chuser ()
{
if checkyesno paranoia && checkyesno dhcpd_chuser_enable; then
dhcpd_piddir=${__dhcpd_piddir}/${name}
dhcpd_leasesdir=${__dhcpd_leasesdir}/${name}
else
dhcpd_withuser= dhcpd_withgroup=
fi
}
rcvar_jail ()
{
if ! checkyesno paranoia || ! checkyesno jail ||
! checkyesno dhcpd_jail_enable; then
dhcpd_hostname= dhcpd_ipaddress=
fi
}
rcvar_chroot ()
{
if ! checkyesno paranoia || ! checkyesno dhcpd_chroot_enable; then
dhcpd_rootdir=
elif checkyesno paranoia && checkyesno dhcpd_chroot_enable; then
dhcpd_devdir=${__dhcpd_devdir}
dhcpd_etcdir=${__dhcpd_etcdir}
fi
}
rcvar_pidnleases ()
{
if ! checkyesno dhcpd_chuser_enable; then
dhcpd_piddir=${__dhcpd_piddir}
dhcpd_leasesdir=${__dhcpd_leasesdir}
fi
dhcpd_pidfile=${dhcpd_piddir}/${name}.pid
dhcpd_leasesfile=${dhcpd_leasesdir}/${name}.leases
dhcpd_conffile=${dhcpd_conf} # for convenience only
dhcpd_confdir=$(dirname ${dhcpd_conffile})
}
rcvar_rooted ()
{
_dhcpd_rootdir=${dhcpd_rootdir}
_dhcpd_devdir=${dhcpd_rootdir}${dhcpd_devdir}
_dhcpd_etcdir=${dhcpd_rootdir}${dhcpd_etcdir}
_dhcpd_confdir=${dhcpd_rootdir}${dhcpd_confdir}
_dhcpd_includedir=${dhcpd_rootdir}${dhcpd_includedir}
_dhcpd_piddir=${dhcpd_rootdir}${dhcpd_piddir}
_dhcpd_leasesdir=${dhcpd_rootdir}${dhcpd_leasesdir}
_dhcpd_conffile=${dhcpd_rootdir}${dhcpd_conffile}
_dhcpd_pidfile=${dhcpd_rootdir}${dhcpd_pidfile}
_dhcpd_leasesfile=${dhcpd_rootdir}${dhcpd_leasesfile}
}
setup_compat ()
{
local dhcpd_rcconf
# suck in old configuration file and variables
#
dhcpd_rcconf=${dhcpd_confdir}/rc.isc-dhcpd.conf
if [ -f ${dhcpd_rcconf} ]; then
warn "${dhcpd_rcconf} is obsolete, use /etc/rc.conf and/or" \
"/etc/rc.conf.d/${name} instead."
. ${dhcpd_rcconf}
if [ -n "${dhcpd_options}" -a -z "${rc_flags}" ]; then
warn "dhcpd_options is obsolete," \
"use dhcpd_flags instead."
rc_flags=${dhcpd_options}
fi
fi
}
setup_umask ()
{
if [ -n "${dhcpd_withumask}" ]; then
umask ${dhcpd_withumask}
fi
}
setup_chroot ()
{
local _mdev _hconf _hosts _ltime _rconf
_mdev=MAKEDEV
_hconf=host.conf
_hosts=hosts
_ltime=localtime
_rconf=resolv.conf
if checkyesno paranoia && checkyesno dhcpd_chroot_enable; then
if ! mounted ${_dhcpd_devdir}; then
safe_mkdir ${_dhcpd_devdir}/_
# XXX /_ hack! so, .../dev is root owned.
fi
safe_mkdir ${_dhcpd_rootdir} ${_dhcpd_etcdir}/_ ${_dhcpd_confdir}
# XXX /_ hack! so, .../etc is root owned.
if checkyesno dhcpd_devfs_enable; then
safe_mount ${_dhcpd_devdir}
elif checkyesno dhcpd_makedev_enable; then
safe_copy ${dhcpd_devdir}/$_mdev ${_dhcpd_devdir}/$_mdev
safe_run 0 sh -c "cd ${_dhcpd_devdir} && ./$_mdev jail bpf4"
else
safe_copy ${dhcpd_devdir} ${_dhcpd_devdir}
fi
safe_copy ${dhcpd_conffile} ${_dhcpd_conffile}
safe_copy ${dhcpd_etcdir}/$_hconf ${_dhcpd_etcdir}/$_hconf
safe_copy ${dhcpd_etcdir}/$_hosts ${_dhcpd_etcdir}/$_hosts
safe_copy ${dhcpd_etcdir}/$_ltime ${_dhcpd_etcdir}/$_ltime
safe_copy ${dhcpd_etcdir}/$_rconf ${_dhcpd_etcdir}/$_rconf
# copy dhcpd_includedir if defined and available
if [ -d "${dhcpd_includedir}" ]; then
safe_mkdir ${_dhcpd_includedir}
safe_copy ${dhcpd_includedir} ${_dhcpd_includedir}
fi
fi
}
setup_chuser ()
{
if checkyesno paranoia && {
checkyesno dhcpd_chuser_enable || checkyesno dhcpd_chroot_enable
}; then
safe_mkdir ${_dhcpd_piddir} ${_dhcpd_leasesdir}
fi
}
setup_leases ()
{
safe_touch ${_dhcpd_leasesfile}
}
setup_flags ()
{
if [ -n "${dhcpd_conf}" ]; then
rc_flags="${rc_flags} -cf ${dhcpd_conf}"
fi
if [ -n "${dhcpd_leasesfile}" ]; then
rc_flags="${rc_flags} -lf ${dhcpd_leasesfile}"
fi
if [ -n "${dhcpd_pidfile}" ]; then
rc_flags="${rc_flags} -pf ${dhcpd_pidfile}"
fi
if [ -n "${dhcpd_withuser}" ]; then
rc_flags="${rc_flags} -user ${dhcpd_withuser}"
fi
if [ -n "${dhcpd_withgroup}" ]; then
rc_flags="${rc_flags} -group ${dhcpd_withgroup}"
fi
if [ -n "${dhcpd_rootdir}" ]; then
rc_flags="${rc_flags} -chroot ${dhcpd_rootdir}"
fi
if [ -n "${dhcpd_hostname}" -a -n "${dhcpd_ipaddress}" ]; then
rc_flags="${rc_flags} -jail ${dhcpd_hostname} ${dhcpd_ipaddress}"
fi
rc_flags="${rc_flags} ${dhcpd_ifaces}"
}
cleanup_chroot ()
{
if checkyesno paranoia && checkyesno dhcpd_chroot_enable; then
safe_umount ${_dhcpd_devdir}
fi
}
dhcpd_stop ()
{
if sh $0 forcestatus; then
sh $0 forcestop
fi
}
remove_pid ()
{
if [ -e ${_dhcpd_pidfile} ]; then
warn "${_dhcpd_pidfile} still exists! -- removing anyway"
fi
safe_remove ${_dhcpd_pidfile}
}
remove_leases ()
{
if [ -s ${_dhcpd_leasesfile} ]; then
warn "${_dhcpd_leasesfile} not empty -- not removed --" \
"futher warning messages expected, don't care."
else
safe_remove ${_dhcpd_leasesfile} ${_dhcpd_leasesfile}~
fi
}
remove_chuser ()
{
if checkyesno paranoia && {
checkyesno dhcpd_chuser_enable || checkyesno dhcpd_chroot_enable
}; then
safe_rmdir ${_dhcpd_piddir} ${_dhcpd_leasesdir}
fi
}
remove_chroot ()
{
if checkyesno paranoia && checkyesno dhcpd_chroot_enable; then
safe_remove ${_dhcpd_conffile} ${_dhcpd_includedir} \
${_dhcpd_etcdir}
if checkyesno dhcpd_devfs_enable; then
safe_umount ${_dhcpd_devdir}
safe_rmdir ${_dhcpd_devdir}/_ # XXX /_ hack!
elif checkyesno dhcpd_jail_enable; then
if ! mounted ${_dhcpd_devdir}; then
safe_remove ${_dhcpd_devdir}
fi
else
safe_remove ${_dhcpd_devdir}
fi
safe_rmdir ${_dhcpd_confdir} ${_dhcpd_rootdir} # XXX /_ hack!
fi
}
dhcpd_check ()
{
check_chuser
check_jail
check_chroot
}
dhcpd_rcvar ()
{
rcvar_chuser
rcvar_jail
rcvar_chroot
rcvar_pidnleases
rcvar_rooted
}
dhcpd_precmd ()
{
setup_compat
setup_umask
setup_chroot
setup_chuser
setup_leases
setup_flags
}
dhcpd_postcmd ()
{
cleanup_chroot
}
dhcpd_install ()
{
if checkyesno paranoia; then
safe_useradd "${dhcpd_withuser}" "${dhcpd_withgroup}" \
"DHCP Daemon" 136 136
fi
}
_dhcpd_uninstall () # user group root
{
local _user _group _root
_user=$1 _group=$2 _root=$3
if [ -n "${_user}" -o -n "${_group}" ]; then
dhcpd_chuser_enable=YES
dhcpd_withuser=${_user}
dhcpd_withgroup=${_group}
else
dhcpd_chuser_enable=NO
fi
if [ -n "${_root}" ]; then
dhcpd_chroot_enable=YES
dhcpd_rootdir=${_root}
else
dhcpd_chroot_enable=NO
fi
dhcpd_check
dhcpd_rcvar
dhcpd_uninstall
}
dhcpd_uninstall ()
{
if checkyesno __dhcpd_uninstall; then
dhcpd_stop
remove_pid
remove_leases
remove_chuser
remove_chroot
else
local _user _group _root
__dhcpd_uninstall=YES
_user=${dhcpd_withuser}
_group=${dhcpd_withgroup}
_root=${dhcpd_rootdir}
_dhcpd_uninstall "" "" ""
if checkyesno paranoia; then
if [ -n "${_user}" -o -n "${_group}" ]; then
_dhcpd_uninstall "${_user}" "${_group}" ""
fi
if [ -n "${_root}" ]; then
_dhcpd_uninstall "" "" "${_root}"
fi
if [ -n "${_user}" -o -n "${_group}" ] &&
[ -n "${_root}" ]; then
_dhcpd_uninstall "${_user}" "${_group}" "${_root}"
fi
fi
fi
}
rcvar=${name}_enable
load_rc_config ${name}
__dhcpd_uninstall="NO" # internal use only
__dhcpd_devdir=/dev # devices directory
__dhcpd_etcdir=/etc # etc directory
__dhcpd_piddir=/var/run # pid file directory
__dhcpd_leasesdir=/var/db # leases file directory
#__dhcpd_rootdir=/var/db/${name} # root directory
dhcpd_check
dhcpd_rcvar
command=/usr/local/sbin/${name}
pidfile=${_dhcpd_pidfile}
required_files=${dhcpd_conf}
start_precmd=${name}_precmd
stop_postcmd=${name}_postcmd
install_cmd=dhcpd_install
uninstall_cmd=dhcpd_uninstall
extra_commands="install uninstall"
# Override /etc/rc.subr JID determiniation, because it doesn't
# work when we launch dhcpd in a jail.
if checkyesno dhcpd_jail_enable ; then
read pid junk < $pidfile 2>/dev/null
[ -n "$pid" ] && JID=`ps -o jid= -p $pid`
fi
run_rc_command "$1"
Код: Выделить всё
more /etc/defaults/rc.conf grep local
Пипец... поставил, посмотрел... и ничего не увидел в console.log относительно dhcpd. Все есть, все видно, как запускается, даже с ntp стало понятно, а про dhcpd ни строчки - ни про попытку запуска, ни про ошибку - вообще ничего... видимо не в поднятии и-фейса дело. Но в чем тогда ? Как будто его в rc.conf и не прописано вовсе.... ничего не понимаю..paradox писал(а):и поставьКод: Выделить всё
more /etc/defaults/rc.conf grep local
rc_debug="YES"
в /etc/rc.conf
И смори как оно отрабатыватеться
и чего не отрабатыватеьчя ntp и dhcp
не помогло... да и с чего бы, в других конторах на моих серваках без проблем работает, но там нигде нет виланов....Ща последнюю попытку сделаю и спать - моцк в ауте...paradox писал(а):а переименуй isc-dhcpd в dhcpd