Software installation opinions needed

Walter Rowe rowe at cme.nist.gov
Wed Sep 26 19:23:22 AEST 1990


>>>>> On 25 Sep 90 21:02:29 GMT, john at pcad.UUCP (John Grow) said:

>> While the rc.local file is modified (either by the installation
>> scripts or by hand), only a line calling another file, rc.<vendor>
>> (ours is rc.pcad), is inserted.  The rc.<vendor> file does all the
>> necessary startup work.

Some of colleagues and myself implemented an extension of this idea
some time ago so that we wouldn't have to continually edit any of the
distributed bootup (rc, rc.boot, rc.local) scripts.

One of the local administrators (Ken Manheimer - klm at cme.nist.gov)
came up with the idea of creating a script called `rc.site' that is
run as the last thing in /etc/rc.  Since all our machines mount the
same /usr/local partition from a central server, that is a good place
to store it.

    # Call my local rc.site script
    if [ -x /usr/local/sys/rc.site ]; then
	/usr/local/sys/rc.site		> /dev/console		2>&1
    fi

Every machine on the net runs `rc.site' at bootup, so all machine
specific bootup commands can go in this file.  And since all NFS
mounts take place in rc.local, adding it to the end of /etc/rc makes
sure that /usr/local has already been mounted and that we can find the
script.

Using an `rc.site' has the advantages that:

[1] all site-specific bootup procedures are in one place,

[2] we don't have to customize the rc scripts on a machine-by-machine
    basis, and

[3] all special bootup procedures are preserved across OS upgrades.

Enclosed is a sample rc.site (modified for obvious reasons).  Just
press `n' to skip it, though I think it makes some points clear.

wpr
---
Walter P. Rowe                                    ARPA: rowe at cme.nist.gov
System Administrator, Robot Systems Division      UUCP: uunet!cme-durer!rowe
National Institute of Standards and Technology    LIVE: (301) 975-3694



====8<======8<======8<======[ rc.site ]======>8======>8======>8====
#! /bin/csh -fb

# Start local stuff
#
echo -n 'local stuff:'

# Add path for mount_xxx binaries
#
set path=($path /usr/kvm)

# get the current hostname
#
set hostname = `hostname`

# aliases to check if hostname is(not) in a list of names
#
alias IfHostIn    echo "\!* | grep -s $hostname ;" 'if ($status == 0) then'
alias IfHostNotIn echo "\!* | grep -s $hostname ;" 'if ($status == 1) then'


#  Start the UPS monitor on stella
#
IfHostIn foo
    /etc/upswatch
    echo -n ' upswatch'
endif


#  Start the automounter on all hosts
#
if (-f /etc/auto.master) then
    /usr/etc/automount -v -M /auto -m -f /etc/auto.master
    echo -n ' automounter'
endif


#  File servers use the atomic clock
#  Other machines use file servers
#
IfHostIn foo bar
    rdate india.colorado.edu	>& /dev/null
else
    rdate bar		>& /dev/null
endif
echo -n ' rdate'


#  Run screenblank (bar doesn't have a bitmap console)
#
IfHostNotIn bar
    if (-x /usr/bin/screenblank) then
	screenblank
	echo -n ' screenblank'
    endif
endif


#  Start up license servers on bar
#  THIS COULD SIMPLY CALL RC.<VENDOR>
#
IfHostIn bar
    setenv FMHOME /depot/.primary/frame
    if (-x $FMHOME/bin/rpc.frameusersd) then
	$FMHOME/bin/rpc.frameusersd $FMHOME/frameusers >& /dev/null
	echo -n ' maker'
    endif
endif


#  Exit normally (successful)
#
echo '.'
exit 0



More information about the Comp.unix.admin mailing list