ref: 57dbe35fb68dda4888fc4c9e8c8d0b3106a8a21c
parent: 1bfde841484fadb1c41f41a6279e7e070f61a31b
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Dec 9 12:44:28 EST 2019
console(8): add console command and manpage the console command runs a command or the system shell under a new instance of kbdfs, optionally providing a serial console when $console environment variable is set.
--- /dev/null
+++ b/rc/bin/console
@@ -1,0 +1,16 @@
+#!/bin/rc
+
+if(~ $#* 0)
+ *=(rc -i)
+
+a=$console(1)
+if(! ~ $#a 0){
+ if(! ~ $a /* '#'*)
+ a=/dev/eia^$a
+ if(test -e /dev/kbd){
+ @{rfork ns; aux/kbdfs; exec $* </dev/cons >/dev/cons >[2=1]} | tee $a
+ exit
+ }
+}
+aux/kbdfs $a
+exec $* </dev/cons >/dev/cons >[2=1]
--- a/sys/man/8/kbdfs
+++ b/sys/man/8/kbdfs
@@ -1,6 +1,6 @@
.TH KBDFS 8
.SH NAME
-kbdfs \- keyboard and console filesystem
+kbdfs, console \- keyboard and console filesystem
.SH SYNOPSIS
.B aux/kbdfs
[
@@ -12,7 +12,7 @@
.B -m
.I mntpnt
] [
-.I filename
+.I consfile
]
.nf
@@ -24,6 +24,12 @@
.B /dev/kbin
.B /dev/kbmap
.fi
+.PP
+.B console
+[
+.I cmd
+.I args...
+]
.SH DESCRIPTION
.PP
Started on
@@ -81,6 +87,17 @@
otherwise on
.B /dev
(the default).
+.PP
+The
+.B console
+command executes
+.I cmd
+(defaults to the system shell)
+under its own
+.I kbdfs
+instance providing a serial console if
+.B $console
+environment variable is set.
.SS Console
.PP
Reading the
@@ -151,7 +168,7 @@
causes the characters to be printed on the console screen.
.PP
When a
-.I filename
+.I consfile
is passed to
.IR kbdfs (8)
as its last argument, it reads and processes the
@@ -158,7 +175,10 @@
characters from that file and forwards them to the
.BR cons
file with the same text processing applied as on keyboard input.
-This is used on serial consoles.
+This is used to provide a serial console when
+.B $console
+environment variable is set. (see
+.IR plan9.ini (8)).
.SS Keyboard
A read on the
.BR kbd
@@ -254,11 +274,14 @@
.IR cons (3),
.IR keyboard (6),
.IR utf (6),
-.IR kbd (3)
+.IR kbd (3),
+.IR plan9.ini (8)
.SH FILES
.B /sys/lib/kbmap/*
.SH SOURCE
.B /sys/src/cmd/aux/kbdfs
+.br
+.B /rc/bin/console
.SH HISTORY
.I Kbdfs
first appeared in 9front (May, 2011).