#!/bin/rc # attaches to hubfs from storage server and runs on cpu provider node rfork #if(! test -e /usr/grid/nextcpuport) # echo 20001 >/usr/grid/nextcpuport ndb/ipquery sys $sysname ip |sed 's/ip=127.0.0.1//' >/usr/grid/myip . /usr/grid/myip while(usercmd=`{read}){ switch($usercmd){ case fetch* if(~ $#usercmd 4){ cpuport=`{echo $usercmd(2) | awk -F ! '{print $3}'} cpuport=`{echo $cpuport + 1 | hoc} roothost=`{echo $usercmd(2) | awk -F ! '{print $2}'} echo fetchroot -d $usercmd(2) -p $cpuport -h $usercmd(3) -u $usercmd(4) >>/usr/grid/cpusvclog.$pid fetchroot -d $usercmd(2) -p $cpuport -h $usercmd(3) -u $usercmd(4) & sleep 2 if(! test -e /zrv/$usercmd(3)) sleep 2 if(! test -e /zrv/$usercmd(3)) sleep 2 if(test -e /zrv/$usercmd(3)){ echo ' rcpu -h tcp!'^$ip^!^$cpuport -u $usercmd(4) # cpuport=`{echo $cpuport '+ 2' |hoc} # echo $cpuport >/usr/grid/nextcpuport } if not echo fetch $usercmd(2) failed on cpu $sysname >[1=2] } if not echo fetch dialstring scorename user >[1=2] case boom* targetfs=$usercmd(2) if(test -e /zrv/$targetfs){ mount -c /zrv/$targetfs /n/init echo exit >>/n/init/io0 sleep 1 echo quit >>/n/init/ctl } if not echo cpu $sysname says $targetfs not in service >[1=2] case * echo unknown command >[1=2] } }