From owner-freebsd-arch Wed Jul 4 2:39:13 2001 Delivered-To: freebsd-arch@freebsd.org Received: from ringworld.nanolink.com (ringworld.nanolink.com [195.24.48.13]) by hub.freebsd.org (Postfix) with SMTP id 4DCAD37B406 for ; Wed, 4 Jul 2001 02:39:04 -0700 (PDT) (envelope-from roam@orbitel.bg) Received: (qmail 3972 invoked by uid 1000); 4 Jul 2001 09:43:34 -0000 Date: Wed, 4 Jul 2001 12:43:34 +0300 From: Peter Pentchev To: arch@FreeBSD.org Cc: audit@FreeBSD.org Subject: A slight improvement of the rc system Message-ID: <20010704124334.F653@ringworld.oblivion.bg> Mail-Followup-To: arch@FreeBSD.org, audit@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG 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-arch" in the body of the message