X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=rc%2Fbin%2Fcpurc;h=38d6745fbe99e3a28bca58eed3b0d70d62f5da5c;hb=e4dc3f9bd8bec99b030535012b1546e5baae717b;hp=14db6f6e6f3c3b18909dbbba821cc680779c706d;hpb=01194e0b1407176f9608b368d56710d41eb0cb8a;p=plan9front.git diff --git a/rc/bin/cpurc b/rc/bin/cpurc index 14db6f6e6..38d6745fb 100755 --- a/rc/bin/cpurc +++ b/rc/bin/cpurc @@ -1,76 +1,98 @@ #!/bin/rc -# the pccpuf kernel runs this file +# this file is run if service=cpu date > /env/boottime -# mount points -mntgen -s slashn && chmod 666 /srv/slashn +for(i in m i P S t u '$') + bind -a '#'^$i /dev >/dev/null >[2=1] + +mount -qb /srv/cons /dev + +# mount points (if not done by bootrc already) +>[2]/dev/null { +mntgen -s slashn /n && chmod 666 /srv/slashn +mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt +mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport} + +# move factotum from /mnt to /mnt/factotum +mount /srv/factotum /mnt/temp +unmount /srv/factotum /mnt +bind /mnt/temp/factotum /mnt/factotum +unmount /mnt/temp + +# usb listener +nusbrc # name translation, cs sets /dev/sysname ndb/cs sysname=`{cat /dev/sysname} -# parallelism for mk -NPROC = `{wc -l /dev/sysname } prompt=($sysname^'# ' ' ') +# parallelism for mk +NPROC=`{wc -l [2]/dev/null || ip/ipconfig -h $sysname + } + rm -f /env/ether + } +} -# if we're not a server, start a dns resolver -if(! test -e /srv/dns) +if(! test -e /net/dns) ndb/dns -r -# If you are on an auth server, start these before listening: -# -auth/keyfs -wp -m /mnt/keys /adm/keys >/dev/null >[2=1] -auth/cron >>/sys/log/cron >[2=1] & -# -# also rename some files: -# -# if(! test -e /rc/bin/service.auth/tcp567){ -# mv /rc/bin/service.auth/authsrv.il566 /rc/bin/service.auth/il566 -# mv /rc/bin/service.auth/authsrv.tcp567 /rc/bin/service.auth/tcp567 -# mv /rc/bin/service/il566 /rc/bin/service/_il566 -# mv /rc/bin/service/tcp567 /rc/bin/service/_tcp567 -# } - -# start listeners if it hasn't already been done (dicey check) -if(! netstat -n | grep -s 'tcp.*Listen.* (7|9|21|22|23|25|110|113|565|993|17007|17009|17010) .*') - aux/listen -q tcp -# we don't use IL, maybe you do -if(! netstat -n | grep -v 17008 | grep -s il.*Listen) - aux/listen -q il - -if(! ps|grep -s timesync) { - aux/timesync -n pool.ntp.org - if (test -e '#r/rtc') @ { - sleep 10 # let timesync correct the time - awk '{print $1}' /dev/time >'#r/rtc' # fix hw clock - } & +if(! ps|grep -s timesync){ + if(~ $#ntp 0) + . <{ndb/ipquery sys $sysname ntp | sed 's, +,\n,g'} + if(~ $#ntp 0) + ntp=pool.ntp.org + aux/timesync -n $ntp + sleep 2 +} + +if(~ $#auth 0){ + auth=`{ndb/query sys $sysname auth} + . <{ndb/ipquery sys $sysname auth | sed 's, +,\n,g'} } +switch($auth){ +case `{ echo $sysname; ndb/query sys $sysname dom + if(test -r /net/ipselftab){ + for(i in `{awk '/u\ *$/{print $1}' /net/ipselftab}){ + echo $i; ndb/ipquery ip $i dom; ndb/ipquery ip $i sys + } | sed 's,[^ ]+=,,g'}} + + # cpu+auth server + auth/keyfs -wp -m /mnt/keys /adm/keys + aux/listen -q -t /rc/bin/service.auth -d /rc/bin/service tcp +case * + # cpu server + aux/listen -q -d /rc/bin/service tcp +} + +if(test -f /dev/apm) + aux/apm -# cpu-specific late startup if(test -e /cfg/$sysname/cpustart) . /cfg/$sysname/cpustart # mode of /proc/*/ctl is inherited across rfork, and sets modes on # other /proc files, such as note, so let listen be killed. -dontkill '^(ipconfig|factotum|mntgen|venti|kfs|cwfs.*|cs|dns|reboot)$' - -# echo `{date} $sysname >>/sys/log/boot -exit '' +dontkill '^(ipconfig|factotum|mntgen|venti|hjfs|kfs|cfs|cwfs.*|9660srv|dossrv|paqfs|cs|dns|reboot|usbd|kb|disk|ether|wpa)$'