Minix2.0/src/etc/rc
# This file performs various system initializations.
umask 022
PATH=/usr/local/bin:/bin:/usr/bin
export PATH
# National keyboard?
test -f /etc/keymap && loadkeys /etc/keymap
# Set timezone. (If the clock tells GMT then put this after 'date'.)
. /etc/profile
# Try to read the hardware real-time clock, if there is one, to set the date
date `readclock`
# 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
# Mount the /usr partition unless it is a single floppy Minix.
if [ ! -d /usr/bin ]
then
case $usr in
unknown)
# We need to ask what the /usr du jour is.
echo -n "Finish the name of device to mount as /usr: /dev/"
read usr
usr=/dev/$usr
esac
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."
sh
}
fi
# Check if the system crashed.
if shutdown -C
then
umount $usr
echo
echo "The system was not properly shut down. Checking file systems."
fsck -r $root
fsck -r $usr
mount $usr /usr
fi
case "`printroot -r`" in
/dev/ram)
# Don't need these things clogging up the RAM disk
rm -rf /boot /minix
esac
# National font?
test -f /etc/font && loadfont /etc/font
echo -n "Starting standard daemons:"
test -f /usr/lib/crontab && cron=cron
for daemon in update $cron
do
if [ -f /usr/bin/$daemon ]
then
echo -n " $daemon"
$daemon &
fi
done
echo .
# Network initialization.
(</dev/eth </dev/tcp) 2>/dev/null && net=true # Is there a TCP/IP server?
if [ "$net" -a -f /etc/rc.net ]
then
# There is a customized TCP/IP initialization script; run it.
. /etc/rc.net
elif [ "$net" ] && [ "`hostaddr -e`" = 0:0:0:0:0:0 ]
then
# No network hardware, configure a fixed address to run TCP/IP alone.
ifconfig -h 192.9.200.1
fi
if [ "$net" ]
then
echo -n "Starting network daemons: "
for daemon in rarpd nonamed irdpd talkd
do
if [ -f /usr/bin/$daemon ]
then
echo -n " $daemon"
$daemon &
fi
done
echo .
# Get the nodename from the DNS and set it.
hostaddr -a >/etc/hostname.file || echo noname >/etc/hostname.file
echo -n "Starting network services:"
for pair in 'shell in.rshd' 'login in.rld' \
'telnet in.telnetd' 'ftp in.ftpd'
do
set $pair
if [ -f /usr/bin/$2 ]
then
echo -n " $1"
tcpd $1 /usr/bin/$2 &
fi
done
echo .
fi
# Don't let wtmp grow indefinitely.
find /usr/adm/wtmp -size +100 -exec sh -c \
"cp /usr/adm/wtmp /usr/adm/wtmp.1; >/usr/adm/wtmp" \; 2>/dev/null
# Cleanup.
test -f /usr/bin/elvprsv && elvprsv /usr/tmp/elv*
rm -rf /tmp/. /usr/tmp/. /usr/spool/lpd/. /usr/spool/locks/.
# Any messages?
test -f /etc/issue && cat /etc/issue