Date: Mon, 10 Dec 2001 20:58:06 -0800 (PST) From: Nicholas Paufler <echofox@discordia.ca> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/32687: scripts in /usr/local/etc/rc.d not executed in 4.4-STABLE Message-ID: <200112110458.fBB4w6a11383@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 32687
>Category: misc
>Synopsis: scripts in /usr/local/etc/rc.d not executed in 4.4-STABLE
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Dec 10 21:00:02 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Nicholas Paufler
>Release: FreeBSD 4.4-STABLE #0: Mon Dec 10 18:49:42 MST 2001
>Organization:
>Environment:
FreeBSD www.discordia.ca 4.4-STABLE FreeBSD 4.4-STABLE #0: Mon Dec 10 18:49:42 MST 2001 root@www.discordia.ca:/usr/obj/usr2/src/sys/DISCORDIA i386
>Description:
After doing an upgrade from 4.3-STABLE (built May 08 2001) to 4.4-STABLE (built Dec 10 2001) I noticed that local packages being started via scripts in /usr/local/etc/rc.d were not being executed upon reboot.
I'd done a mergemaster after completing the make installworld in which I installed all new files except for rc.conf and rc.firewall.
I eventually traced the problem to /etc/rc
For whatever reason the local package initialization section of that file was failing to function correctly. I edited that file and pasted in the section from a different 4.3-STABLE machine, rebooted and the problem was solved. All local packages (apache, dhcpd, mysql) started properly.
>How-To-Repeat:
Local packages will not be initialized until that section of /etc/rc is replaced so every time the computer reboots the problem will repeat.
>Fix:
In the /etc/rc for 4.4-STABLE as of December 10th:
Replace the current section:
case ${local_startup} in
[Nn][Oo] | '')
;;
*)
echo -n 'Local package initialization:'
slist=""
for dir in ${local_startup}; do
if [ -d "${dir}" ]; then
for script in ${dir}/*.sh; do
slist="${slist}${script_name_sep}${script}"
done
fi
done
script_save_sep="$IFS"
IFS="${script_name_sep}"
for script in ${slist}; do
if [ -x "${script}" ]; then
(set -T
trap 'exit 1' 2
${script} start)
fi
done
IFS="${script_save_sep}"
echo '.'
;;
esac
With an earlier version of that section, such as the following taken from a 4.3-STABLE system:
case ${local_startup} in
[Nn][Oo] | '')
;;
*)
echo -n 'Local package initialization:'
for dir in ${local_startup}; do
if [ -d "${dir}" ]; then
for script in ${dir}/*.sh; do
if [ -x "${script}" ]; then
(set -T
trap 'exit 1' 2
${script} start)
fi
done
fi
done
echo '.'
;;
esac
I'm guessing that there is a typo or some other problem in the local package init section of the current /etc/rc which is causing the problem.
>Release-Note:
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200112110458.fBB4w6a11383>
