# /usr/etc/rc - continued system initialization.

daemonize()
{
	# Function to start daemons, if we have them.
	for daemon
	do
		set $daemon
		if [ -f /usr/sbin/$1 ]
		then
			echo -n " $1"
			$* &
		fi
	done
}

# Select console font.
test -f /etc/font && loadfont /etc/font </dev/console

# Cleanup.
rm -rf /tmp/. /usr/spool/lpd/. /usr/spool/locks/.

# Start servers.
ifs="$IFS"; IFS=,
for server in `sysenv servers`; do $server; done
IFS="$ifs"; unset ifs
sleep 1

# Network initialization.
(: </dev/tcp) 2>/dev/null && net=true	# Is there a TCP/IP server?

echo -n "Starting daemons:"
daemonize syslogd update cron

if [ "$net" ]
then
	# We need a name daemon, preferably a real one.
	named=nonamed
	test -f /etc/named.boot && named=in.named

	if [ -f /etc/rc.net ]
	then
		# Let a customized TCP/IP initialization script figure it out.
		. /etc/rc.net
	else
		# Standard network daemons.
		daemonize rarpd $named irdpd inetd
	fi
fi

# The last daemon has been started, so close the list:
echo .

if [ "$net" ]
then
	# Get the nodename from the DNS and set it.
	if nodename=`hostaddr -a`
	then
		if [ $nodename : '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]$' ]
		then
			# Reverse lookup failed...
			hostname=$nodename
		else
			# Strip domain part.
			hostname=`expr $nodename : '\([^.]*\)'`
		fi
		uname -hn $hostname $nodename
	fi
fi

# Recover files being edited when the system crashed.
test -f /usr/sbin/elvprsv && elvprsv /usr/tmp/elv_*.*

# Run the daily cleanup on systems that are not on at night.
test -f /usr/etc/daily && sh /usr/etc/daily &
