13e12c5d1SDavid du Colombier#!/bin/rc 2223a0358SDavid du Colombier# cpu server start up 33e12c5d1SDavid du Colombierdate > /env/boottime 43e12c5d1SDavid du Colombier 565fa3f8bSDavid du Colombier# mount points 665fa3f8bSDavid du Colombiermntgen -s slashn && chmod 666 /srv/slashn 765fa3f8bSDavid du Colombier 87dd7cddfSDavid du Colombier# name translation, cs sets /dev/sysname 93e12c5d1SDavid du Colombierndb/cs 1059cc4ca5SDavid du Colombiersysname=`{cat /dev/sysname} 11219b2ee8SDavid du Colombier 12219b2ee8SDavid du Colombier# parallelism for mk 138db68488SDavid du ColombierNPROC = `{wc -l </dev/sysstat} 143e12c5d1SDavid du Colombier 15223a0358SDavid du Colombier# site-specific startup 16585b3c7aSDavid du Colombierif(test -e /rc/bin/cpurc.local) 17585b3c7aSDavid du Colombier . /rc/bin/cpurc.local 18585b3c7aSDavid du Colombier 196c54378cSDavid du Colombierif (~ $#sysname 0 || ~ $sysname '') { 206c54378cSDavid du Colombier sysname = helix # default 216c54378cSDavid du Colombier echo -n $sysname >/dev/sysname 226c54378cSDavid du Colombier} 236c54378cSDavid du Colombierprompt=($sysname^'# ' ' ') 246c54378cSDavid du Colombier 256c54378cSDavid du Colombier# cpu-specific startup 26585b3c7aSDavid du Colombierif(test -e /cfg/$sysname/cpurc) 27585b3c7aSDavid du Colombier . /cfg/$sysname/cpurc 28585b3c7aSDavid du Colombier 29585b3c7aSDavid du Colombier# start up internet if we don't already have an address 30585b3c7aSDavid du Colombierif(! grep u /net/ipselftab | grep -sv 127.0.0.1) 31585b3c7aSDavid du Colombier ip/ipconfig 32585b3c7aSDavid du Colombierif(! grep -s 127.0.0.1 /net/ipselftab) 33585b3c7aSDavid du Colombier ip/ipconfig loopback /dev/null 127.1 347dd7cddfSDavid du Colombier 355877d023SDavid du Colombier# if we're not a server, start a dns resolver 365877d023SDavid du Colombierif(! test -e /srv/dns) 375877d023SDavid du Colombier ndb/dns -r 385877d023SDavid du Colombier 399a747e4fSDavid du Colombier# If you are on an auth server, start these before listening: 40223a736eSDavid du Colombier# 41223a736eSDavid du Colombier# auth/keyfs -wp -m /mnt/keys /adm/keys >/dev/null >[2=1] 42223a736eSDavid du Colombier# auth/cron >>/sys/log/cron >[2=1] & 4304b71005SDavid du Colombier 4404b71005SDavid du Colombier# keep other bootes processes from creating capabilities 4504b71005SDavid du Colombierrm -f '#¤/caphash' 4604b71005SDavid du Colombier 4704b71005SDavid du Colombier# also rename some files on an auth server: 489a747e4fSDavid du Colombier# 49e2b0f437SDavid du Colombier# if(! test -e /rc/bin/service.auth/tcp567){ 509a747e4fSDavid du Colombier# mv /rc/bin/service.auth/authsrv.il566 /rc/bin/service.auth/il566 519a747e4fSDavid du Colombier# mv /rc/bin/service.auth/authsrv.tcp567 /rc/bin/service.auth/tcp567 529a747e4fSDavid du Colombier# mv /rc/bin/service/il566 /rc/bin/service/_il566 539a747e4fSDavid du Colombier# mv /rc/bin/service/tcp567 /rc/bin/service/_tcp567 549a747e4fSDavid du Colombier# } 559a747e4fSDavid du Colombier 56*63afb9a5SDavid du Colombier# netssh 57*63afb9a5SDavid du Colombier 58585b3c7aSDavid du Colombier# start listeners if it hasn't already been done (dicey check) 59585b3c7aSDavid du Colombierif(! netstat -n | grep -s 'tcp.*Listen.* (7|9|21|22|23|25|110|113|565|993|17007|17009|17010) .*') 60585b3c7aSDavid du Colombier aux/listen -q tcp 61223a0358SDavid du Colombier# we don't use IL, maybe you do 62223a0358SDavid du Colombierif(! netstat -n | grep -v 17008 | grep -s il.*Listen) 63223a0358SDavid du Colombier aux/listen -q il 64585b3c7aSDavid du Colombier 65585b3c7aSDavid du Colombierif(! ps|grep -s timesync) { 66ff5e734cSDavid du Colombier aux/timesync -n pool.ntp.org 67585b3c7aSDavid du Colombier if (test -e '#r/rtc') @ { 68585b3c7aSDavid du Colombier sleep 10 # let timesync correct the time 69585b3c7aSDavid du Colombier awk '{print $1}' /dev/time >'#r/rtc' # fix hw clock 70585b3c7aSDavid du Colombier } & 71585b3c7aSDavid du Colombier} 72585b3c7aSDavid du Colombier 73223a0358SDavid du Colombier# cpu-specific late startup 74223a0358SDavid du Colombierif(test -e /cfg/$sysname/cpustart) 75223a0358SDavid du Colombier . /cfg/$sysname/cpustart 76585b3c7aSDavid du Colombier 779e67432bSDavid du Colombier# mode of /proc/*/ctl is inherited across rfork, and sets modes on 789e67432bSDavid du Colombier# other /proc files, such as note, so let listen be killed. 799e67432bSDavid du Colombierdontkill '^(ipconfig|factotum|mntgen|venti|fossil|cs|dns|reboot)$' 80585b3c7aSDavid du Colombier 8187a56857SDavid du Colombier# echo `{date} $sysname >>/sys/log/boot 82585b3c7aSDavid du Colombierexit '' 83