glenda.party
term% ls -F
term% cat index.txt
CONSOLEFS(4)               Kernel Interfaces Manual               CONSOLEFS(4)



NAME
       consolefs, C, clog  - file system for console access

SYNOPSIS
       aux/consolefs [ -m mntpt ] [ -c consoledb ]

       C system

       aux/clog console log system

DESCRIPTION
       To  ease  administration of multiple machines one might attach many se‐
       rial console lines to a single computer.  Consolefs is  a  file  system
       that  lets  multiple  users  simultaneously access these console lines.
       The consoles and permissions to access them are  defined  in  the  file
       consoledb (default /lib/ndb/consoledb).  The format of consoledb is the
       same as that of other /lib/ndb files, ndb(6).  Consoles are defined  by
       entries of the form:

            console=dirty dev=/dev/eia205
                 uid=bignose
                 gid=support
                 speed=56200
                 cronly=

       Each  console/dev  pair represents the name of a console and the device
       associated with it.  Consolefs presents a single level  directory  with
       up  to  three  files per console: console, consolectl, and consolestat.
       Writes of console are equivalent to writes of dev and reads and  writes
       of consolectl and consolestat are equivalent to reads and writes of de‐
       vctl and devstat respectively.  Consolectl and consolestat will not ex‐
       ist  if the underlying dev does not provide them.  Consolefs broadcasts
       anything it reads from dev to all readers of console.  Therefore,  many
       users can con(1) to a console, see all output, and enter commands.

       The  cronly=  attribute causes newlines typed by the user to be sent to
       the console as returns.  The speed=x attribute/value pair  specifies  a
       bit rate for the console.  The default is 9600 baud.  The openondemand=
       attribute causes the console device (dev) to be opened  only  when  the
       corresponding mntpt/console file is open.

       Access to the console is controlled by the uid and gid attributes/value
       pairs.  The uid values are user account names.  The gid values are  the
       names of groups defined in consolefs by entries of the form:

            group=support
                 uid=bob
                 uid=carol
                 uid=ted
                 uid=alice

       Groups  are  used to avoid excessive typing.  Using gid=x is equivalent
       to including a uid=y for each user y that is a member of x.

       To keep users from inadvertently interfering with one another,  notifi‐
       cation  is  broadcast  to  all  readers whenever a user opens or closes
       name.  For example, if user boris opens a console that users  vlad  and
       barney have already opened, all will read the message:

            [+boris, vlad, barney]

       If vlad then closes, boris and barney will read:

            [-vlad, boris, barney]

       Consolefs  posts the client end of its 9P channel in /srv/consolefs and
       mounts this locally in mntpt (default  /mnt/consoles);  remote  clients
       must mount (see bind(1)) this file to see the consoles.

       The rc(1) script C automates this procedure.  It uses import(4) to con‐
       nect to /mnt/consoles on the machine connected  to  all  the  consoles,
       then  uses con(1) to connect to the console of the machine system.  The
       script must be edited at installation by the  local  administration  to
       identify the system that holds /mnt/consoles.

       Aux/clog  opens  the  file  console and writes every line read from it,
       prefixed by the ASCII time to the file log.

       An example of 2 consoles complete with console logging is:

              % cat /lib/ndb/consoledb
              group=sys
                   uid=glenda
              console=bootes dev=/dev/eia0 gid=sys
              console=fornax dev=/dev/eia1 gid=sys
              % aux/consolefs
              % ls -p /mnt/consoles
              bootes
              bootesctl
              fornax
              fornaxctl
              % clog /mnt/consoles/fornax /sys/log/fornax &
              % clog /mnt/consoles/bootes /sys/log/bootes &

       The console server's default name space must mount the consoles  for  C
       to import.  This can be arranged by adding

              mount /srv/consoles /mnt/consoles

       to /lib/namespace.$sysname.

FILES
       /srv/consoles
              Client end of pipe to server.

       /mnt/consoles
              Default mount point.

       /lib/ndb/consoledb
              Default user database.

SOURCE
       /sys/src/cmd/aux/consolefs.c
       /rc/bin/C
       /sys/src/cmd/aux/clog.c

BUGS
       Changing  the  gid's or uid's while consolefs is running is detected by
       consolefs.  However, to add new consoles one must restart consolefs.



                                                                  CONSOLEFS(4)