]> git.lizzy.rs Git - plan9front.git/blob - rc/bin/cpurc
cat: remove stupid long cast
[plan9front.git] / rc / bin / cpurc
1 #!/bin/rc
2 # this file is run if service=cpu
3
4 # parallelism for mk
5 NPROC=`{wc -l </dev/sysstat}
6
7 # bind all likely devices
8 for(i in u t S P '$')
9         bind -a '#'^$i /dev >/dev/null >[2=1]
10 rm -f /env/i
11
12 mount -qb /srv/cons /dev
13
14 # mount points (if not done by bootrc already)
15 >[2]/dev/null {
16 mntgen -s slashn /n && chmod 666 /srv/slashn
17 mntgen -s slashmnt /mnt && chmod 666 /srv/slashmnt
18 mntgen -s mntexport /mnt/exportfs && chmod 666 /srv/mntexport}
19
20 # move factotum from /mnt to /mnt/factotum
21 mount /srv/factotum /mnt/temp
22 unmount /srv/factotum /mnt
23 bind /mnt/temp/factotum /mnt/factotum
24 unmount /mnt/temp
25
26 # usb listener
27 nusbrc
28
29 # site-specific startup
30 if(test -e /rc/bin/cpurc.local)
31         . /rc/bin/cpurc.local
32
33 # cs sets sysname (cpurc.local may already have started it so check)
34 if(! test -e /srv/cs && ! test -e /net/cs)
35         ndb/cs
36 sysname=`{cat /dev/sysname}
37 if(~ $#sysname 0 || ~ $sysname ''){
38         sysname=cirno                   # default
39         echo -n $sysname >/dev/sysname
40 }
41 prompt=($sysname^'# ' ' ')
42
43 # set up any partitions
44 diskparts
45
46 # start up local swapping
47 disk=`{ls /dev/sd*/swap >[2]/dev/null}
48 if (! ~ $#disk 0)
49         swap $disk(1) >/dev/null >[2=1]
50 rm -f /env/disk
51
52 # cpu-specific startup
53 if(test -e /cfg/$sysname/cpurc)
54         . /cfg/$sysname/cpurc
55
56 # automatic ip address setup
57 if(test -r /net/ipselftab){
58         if(! grep u /net/ipselftab | grep -sv '^(127.0.0.1|::1)'){
59                 addrs=`{ndb/query -a sys $sysname ether}
60                 if(! ~ $#addrs 0){
61                         for(ether in /net/ether*){
62                                 addr=`{cat $ether/addr >[2]/dev/null}
63                                 switch($addr){
64                                 case $addrs
65                                         # try /lib/ndb first, then do dhcp/slaac
66                                         ip/ipconfig -6 ether $ether
67                                         ip/ipconfig -N ether $ether >[2]/dev/null || @{
68                                                 test -e /env/nora6 || ip/ipconfig ether $ether ra6 recvra 1 &
69                                                 ip/ipconfig -h $sysname ether $ether &
70                                                 wait
71                                         }
72                                 }
73                         }
74                 }
75                 rm -f /env/ether /env/addrs /env/addr
76         }
77 }
78
79 if(! test -e /net/dns)
80         ndb/dns -r
81
82 if(! ps|grep -s timesync){
83         if(~ $#ntp 0)
84                 . <{ndb/ipquery sys $sysname ntp | sed 's, +,\n,g'}
85         if(~ $#ntp 0)
86                 ntp=pool.ntp.org
87         aux/timesync -n $ntp
88         sleep 2
89 }
90
91 if(test -d /cfg/$sysname/service)
92         serviced=/cfg/$sysname/service
93 if not if(test -d /cfg/default/service)
94         serviced=/cfg/default/service
95 if not
96         serviced=/rc/bin/service
97 if(~ $#auth 0)
98         auth=`{ndb/ipquery sys $sysname auth | sed 's,auth=,,g'}
99 if(@{
100         for(a in `{ndb/ipquery sys $sysname ip sys dom | sed 's,(ip|sys|dom)=,,g'}){
101                 if(~ $a $auth)
102                         exit ''
103         }
104         exit 'no'
105 }){
106         # cpu+auth server
107         auth/keyfs -wp -m /mnt/keys /adm/keys
108         aux/listen -q -t /rc/bin/service.auth -d $serviced tcp
109 }
110 if not {
111         # cpu server
112         aux/listen -q -d $serviced tcp
113 }
114
115 if(test -f /dev/apm)
116         aux/apm
117
118 if(test -e /cfg/$sysname/cpustart)
119         . /cfg/$sysname/cpustart
120
121 # mode of /proc/*/ctl is inherited across rfork, and sets modes on
122 # other /proc files, such as note, so let listen be killed.
123 dontkill '^(ipconfig|factotum|mntgen|venti|hjfs|kfs|cfs|cwfs.*|9660srv|dossrv|paqfs|cs|dns|reboot|usbd|kb|disk|ether|wpa)$'