#!/bin/rc
# C system - connect to system's console
rfork en
if (~ $#* 0) {
echo usage: $0 '[-r]' system >[1=2]
exit usage
}
oflag=()
opt=-r
while(~ $1 -*)
switch($1){
case -r
shift
opt=''
case -O -o
oflag=-O
shift
case *
opt=-r
shift
}
switch($1){
# usually you should add a 'console=<console-server>' clause
# to the target machine's ndb entry, not modify this script.
case ella
exec C office0
exit
case Rella
exec C office2 < /dev/null
exit
case *
# look for server in /lib/ndb
server=`{ndb/query sys $1 console}
switch($server){
case ''
echo C: unknown console server for $1
exit 'unknown console server'
}
}
# can't cpu to old servers any more
switch($server){
case dinar bones
ssh $server C $1
exit ''
case out?* roku?*
outside
bind /net.alt /net
}
if(! test -e /mnt/consoles/$1){
switch($sysname){
case $server
mount /srv/consoles /mnt/consoles
case *
import -E clear $oflag $server /mnt/consoles
x=`{ls /mnt/consoles}
if (~ $#x 0) {
import -E clear $oflag $server / /n/$server
# gets: i/o on hungup channel
mount /n/$server/srv/consoles /mnt/consoles
}
}
}
if(! test -e /mnt/consoles/$1 && test -e /srv/consoles)
mount /srv/consoles /mnt/consoles
if(! test -e /mnt/consoles/$1){
echo console not found
exit 'console not found'
}
if (test -w /dev/label) {
olab=`{cat /dev/label}
label $1
}
con -l $opt /mnt/consoles/$1
if (test -w /dev/label)
label $olab
|