Date: Wed, 4 Jul 2001 12:43:34 +0300 From: Peter Pentchev <roam@orbitel.bg> To: arch@FreeBSD.org Cc: audit@FreeBSD.org Subject: A slight improvement of the rc system Message-ID: <20010704124334.F653@ringworld.oblivion.bg>
next in thread | raw e-mail | index | archive | help
Hi,
(And yes, I know that there is work in progress of importing the NetBSD
rc system; still, I don't think it is going to happen very soon, and
I don't think it is going to be MFC'd soon, if ever, so here goes..)
Attached is a patch that does two things for the startup/shutdown scripts.
First, a new rc.conf variable is introduced - script_name_sep. By default,
this is a space, but it should be changed if your startup/shutdown scripts
contain spaces. This is not a common occurrence, but it might prove
useful, e.g. for people coming from Seattle-OS-based environments, who are
prone to generating long, descriptive file names.
Second, the rc.shutdown logic is changed a little, so shutdown scripts
are executed in reverse alphabetical order. Thus, dependent services
are shutdown before the ones they depend upon.
G'luck,
Peter
--
.siht ekil ti gnidaer eb d'uoy ,werbeH ni erew ecnetnes siht fI
Index: src/etc/rc
===================================================================
RCS file: /home/ncvs/src/etc/rc,v
retrieving revision 1.271
diff -u -r1.271 rc
--- src/etc/rc 2001/06/28 06:43:47 1.271
+++ src/etc/rc 2001/07/04 07:45:15
@@ -793,17 +793,24 @@
;;
*)
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
Index: src/etc/rc.shutdown
===================================================================
RCS file: /home/ncvs/src/etc/rc.shutdown,v
retrieving revision 1.16
diff -u -r1.16 rc.shutdown
--- src/etc/rc.shutdown 2000/12/17 08:15:57 1.16
+++ src/etc/rc.shutdown 2001/07/04 07:45:15
@@ -102,17 +102,24 @@
[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
Index: src/etc/defaults/rc.conf
===================================================================
RCS file: /home/ncvs/src/etc/defaults/rc.conf,v
retrieving revision 1.116
diff -u -r1.116 rc.conf
--- src/etc/defaults/rc.conf 2001/06/28 21:45:47 1.116
+++ src/etc/defaults/rc.conf 2001/07/04 07:45:15
@@ -31,6 +31,7 @@
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.
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-audit" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010704124334.F653>
