Add a script_name_sep rc.conf knob to specify the IFS character

for separating the startup scripts' list into individual filenames.

Run the shutdown scripts in reverse alphabetical order, so dependent
services are stopped before the services they depend upon.

Reviewed by:	-arch, -audit
MFC after:	3 weeks
This commit is contained in:
Peter Pentchev 2001-07-17 14:33:52 +00:00
parent e55bc0a096
commit 1d17292c23
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=79825
4 changed files with 32 additions and 10 deletions

View file

@ -31,6 +31,7 @@ pccardd_flags="" # Additional flags for pccardd.
pccard_conf="/etc/defaults/pccard.conf" # pccardd(8) config file
removable_interfaces="" # Removable network interfaces for /etc/pccard_ether.
local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs.
script_name_sep=" " # Change if your startup scripts' names contain spaces
rc_conf_files="/etc/rc.conf /etc/rc.conf.local"
fsck_y_enable="NO" # Set to YES to do fsck -y if the initial preen fails.
background_fsck="YES" # Attempt to run fsck in the background where possible.

17
etc/rc
View file

@ -793,17 +793,24 @@ case ${local_startup} in
;;
*)
echo -n 'Local package initialization:'
slist=""
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
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

View file

@ -102,17 +102,24 @@ case ${local_startup} in
[Nn][Oo] | '')
;;
*)
slist=""
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} stop)
fi
slist="${script}${script_name_sep}${slist}"
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} stop)
fi
done
IFS="${script_save_sep}"
echo '.'
;;
esac

View file

@ -146,6 +146,13 @@ List of removable network interfaces to be supported by
.It Va local_startup
.Pq Vt str
List of directories to search for startup script files.
.It Va script_name_sep
.Pq Vt str
The field separator to use for breaking down the list of startup script files
into individual filenames.
The default is a space.
You do not need to change this unless you have startup scripts with names
containing spaces.
.It Va hostname
.Pq Vt str
The Fully Qualified Domain Name of your host on the network.