# $Id: README,v 8.3 2000/05/09 00:42:32 ksb Exp $
#

Important news for Release 8.3:
 I added a HowMany.c file to help you tune MAXMEMB.  I got a lot of
 questions about that.

Important news for Release 8.2:
 There is some problem withe LINUX select and fd_set macros.  I got
 a report and a patch I don't believe.  Any LINUX hacks have a clue?

 The power controller stuff works, but it _really_ dangerous in the
 wrong hands.  If you power off the console server itself it is not
 my problem.  In fact, none of what you do with this is my problem.

 As the Purdue Copyright said "Modified version must be clearly marked."
 This is a MODIFIED VERSION of my PURDUE RELEASE.

Important news for Release 7.4 (last public release):
 There was a long standing bug fixed in access.c.  Upgrade.

 Ports to NeXT, LINUX, and BSDI now.


The general idea...

 The idea is you have a big network.  You have several machines whose consoles
 you want to access remotely.  You connect the console lines of these machines
 to serial ports on another machine, which runs the server half of this
 software.  Then you can use the client program to get at the consoles from
 anywhere in the network.  It also provides log file of the consoles and
 an operator stream.


Who will help me?

 Send questions, comments, and bug reports to:
	ksb@sa.fedex.com  (Kevin Braunsdorf)

Permissions needed to run this?

 The console server does not need to be run as root.  As long as it has
 permission to write to all the log files, any id will be fine.  Keep in
 mind, though, that log files occasionally end up with sensitive data in
 them (like root passwords when people don't watch for the pasword
 prompt).

 You'll have to pick a port number greater than 1024 for non-root to work.

Console server process management.

 The conserver (usually) ends up running several process:  one master
 and several children.  Each of the children is responsible for some of
 the consoles.  Occasionally, we've had problems with one of the
 children becoming "stuck" in one sense or another.  To make dealing
 with this easier here is the plan:

 1.  If a console is spewing trash use the down (`d') command to make the
     server ignore it.  Use the reopen (`o') command to restore it to
     working order.

 2.  If any child dies, the master process will start another one to replace
     it.  So if you have a process which is "stuck" it is easy to restart.
     {Send it a TERM and let conserver respawn it.}

     To find the stuck one you'll have to use lsof(8) or netstat.

 3.  If you need to restart on one host, killing the master process (on
     that host) with a SIGTERM (the default for kill) will tell the master
     process to kill everything (including itself).

     The console client program can do this for you remotely if things are
     not in too bad a state:
	console -M target -Q

 4.  If you need to restart everything everywhere, run
	console -q
     which will terminate the console server on all master hosts.
     This will make people using any of the consoles Very Unhappy.

 5.  If all else fails get a real tty on a cart and push it to the poor
     machine :-).  [Keep one handy -- we don't claim this software is
     any better than any other *FREE* product.]


Log file time stamping

 We use to use a simple script like stamper.sh, which we start from
 rc.local, to time-stamp the files from all the machines that don't do
 this already.  Using this script has the advantage over crontab entries
 that it doesn't interrupt what is happening on the console, if someone
 is using it.  But the time stamps were hardly ever useful.  So we quit.

 Use
	stamper /usr/adm/target.console /usr/adm/other.console
 to add time stamps to the log file for the `target' and `other' machines.

 [ This stamper script will go away sometime soon. -- ksb]

--
"When the head and heart of it finally alope!"
kayessbee, Kevin Braunsdorf, ksb@sa.fedex.com
