116 lines
2.4 KiB
Text
116 lines
2.4 KiB
Text
|
# /etc/rc - System startup script run by init before going multiuser.
|
||
|
|
||
|
umask 022
|
||
|
TERM="${TERM-minix}"
|
||
|
PATH=/usr/local/bin:/bin:/usr/bin
|
||
|
export TERM PATH
|
||
|
|
||
|
usage()
|
||
|
{
|
||
|
echo >&2 "Usage: $0 [-saf] start|stop|down"
|
||
|
exec intr sh
|
||
|
}
|
||
|
|
||
|
while getopts 'saf' opt
|
||
|
do
|
||
|
case $opt in
|
||
|
s) sflag=t ;; # Single user
|
||
|
a) aflag=t ;; # Ask for /usr
|
||
|
f) fflag=t ;; # Force a full file system check
|
||
|
*) usage
|
||
|
esac
|
||
|
done
|
||
|
shift `expr $OPTIND - 1`
|
||
|
|
||
|
case "$#:$1" in
|
||
|
1:start|1:stop|1:down)
|
||
|
action=$1
|
||
|
;;
|
||
|
*) usage
|
||
|
esac
|
||
|
|
||
|
case $action in
|
||
|
start)
|
||
|
# National keyboard?
|
||
|
test -f /etc/keymap && loadkeys /etc/keymap
|
||
|
|
||
|
# Set timezone.
|
||
|
. /etc/profile
|
||
|
|
||
|
# Try to read the hardware real-time clock, otherwise do it manually.
|
||
|
readclock || intr date -q
|
||
|
|
||
|
# Initialize files.
|
||
|
printroot >/etc/mtab # /etc/mtab keeps track of mounts
|
||
|
>/etc/utmp # /etc/utmp keeps track of logins
|
||
|
|
||
|
# /etc/fstab lists the root, tmp and usr devices.
|
||
|
. /etc/fstab
|
||
|
|
||
|
# Any swapspace on a device?
|
||
|
test "$swap" : '/dev/' && mount -s $swap
|
||
|
|
||
|
# Mount the /usr partition unless this is a single floppy Minix.
|
||
|
if [ ! -d /usr/bin ]
|
||
|
then
|
||
|
if [ "$aflag" -o "$usr" = unknown ]
|
||
|
then
|
||
|
# We need to ask what the /usr du jour is.
|
||
|
intr sh -c '
|
||
|
echo -n "Finish the name of device to mount as /usr: /dev/"
|
||
|
read usr
|
||
|
echo "usr=/dev/$usr" >/tmp/usr'
|
||
|
. /tmp/usr
|
||
|
fi
|
||
|
mount $usr /usr || {
|
||
|
echo "\
|
||
|
Please try to mount something else as /usr, then hit CTRL-D to continue startup.
|
||
|
Mount $usr /usr failed -- Single user."
|
||
|
intr sh
|
||
|
}
|
||
|
rm -f /tmp/usr
|
||
|
fi
|
||
|
|
||
|
# Check if the system crashed.
|
||
|
if shutdown -C
|
||
|
then
|
||
|
echo
|
||
|
echo "The system was not properly shut down. Checking file systems."
|
||
|
fflag=t
|
||
|
fi
|
||
|
|
||
|
if [ "$fflag" ]
|
||
|
then
|
||
|
umount $usr
|
||
|
intr fsck -r $root
|
||
|
intr fsck -r $usr
|
||
|
mount $usr /usr
|
||
|
fi
|
||
|
|
||
|
if [ "$sflag" ]
|
||
|
then
|
||
|
echo "Single user."
|
||
|
intr sh
|
||
|
fi
|
||
|
|
||
|
# Any swapspace on a file?
|
||
|
test -n "$swap" -a ! "$swap" : '/dev/' && mount -s $swap
|
||
|
|
||
|
case "`printroot -r`" in
|
||
|
/dev/ram)
|
||
|
# Remove boot-only things to make space.
|
||
|
rm -rf /boot /minix
|
||
|
esac
|
||
|
|
||
|
# Things should be alright now.
|
||
|
echo;echo "Multiuser startup in progress."
|
||
|
esac
|
||
|
|
||
|
# Further initialization.
|
||
|
test -f /usr/etc/rc && sh /usr/etc/rc $action
|
||
|
test -f /usr/local/etc/rc && sh /usr/local/etc/rc $action
|
||
|
|
||
|
# Any messages?
|
||
|
test "$action" = start -a -f /etc/issue && cat /etc/issue
|
||
|
exit 0
|