listen
listens on a network for inbound calls to local services.
Net
is the network protocol on which to listen, by default
/net/tcp.
The services available are executable, non-empty files in
srvdir
or
trustsrvdir.
If neither
srvdir
nor
trustsrvdir
is given,
listen
looks for executable files in
/bin/service.
Services found in
srvdir
are executed as user
none;
services found in
trustsrvdir
are executed as the user who started
listen.
When changing user to
none,
a new namespace is created,
usually by executing
/lib/namespace,
but
-n
selects an alternate
namespace.
Option
-q
suppresses affirmative log information.
Option
-i
suppresses the periodic scan of the service directories for changes.
Service names are made by concatenating the name of
the network with the name of the service or port.
For example,
an inbound call on the TCP network for port 565 executes service
tcp565.
These programs are
execed
with arguments consisting of
service
(e.g.,
tcp25),
protocol
(e.g.,
tcp),
and the directory of this network connection,
with the network connection's
data
file bound to
/dev/cons
and opened read/write as file descriptors 0, 1 and 2.
At least the following services are available in
/bin/service.
- tcp564
- serve a piece of the name space using the Plan 9 file system protocol,
with authentication via
Tauth
(in
attach(5)),
no encryption,
and multiplex multiple users on a single connection
(used by
srv(4),
and also by Unix systems to see Plan 9 files).
- tcp17007
- serve a piece of the name space using the Plan 9 file system protocol,
with authentication at the start,
optional SSL encryption,
and no multiplexing of users
(typically used by
cpu(1)
and
import(4)).
Not usable by user
none.
- tcp17008
- like
tcp17007,
but serves the root of the tree,
forgoing the negotiation for which subtree to serve.
- tcp17009
- rx
remote execution.
- tcp17010
- server for
cpu(1)
command.
- tcp17013
- server for old
cpu(1)
command for compatibility with old clients.
- tcp7
- echo any bytes received (bit mirror)
- tcp9
- consume any bytes received (bit bucket)
- tcp19
- chargen
service.
- tcp21
- FTP daemon
- tcp22
- ssh(1)
`secure shell' encrypted terminal connection or file transfer.
- tcp23
- telnet
terminal connection.
- tcp25
- mail delivery.
- tcp53
- TCP port for DNS.
- tcp110
- POP3 port.
- tcp113
- Ident
port (always reports
none).
- tcp143
- IMAP4rev1 port.
- tcp513
- rlogin
terminal connection.
- tcp515
- LP daemon; see
lp(8).
- tcp565
- report the address of the incoming call.
- tcp993
- Secure IMAP4rev1 port.
- tcp995
- Secure POP3 port.
- tcp1723
- PPTP (point-to-point tunnelling protocol) service.
At least the following services are available in
/bin/service.auth,
the usual
trustsrvdir.
- tcp566
- validate a SecureNet box.
- tcp567
- Plan 9 authentication-ticket service.
Listen1
is a lightweight listener intended for personal use,
modeled from Inferno's
listen(1).
Listen1
announces on
address,
running
cmd
args...
for each incoming connection;
the network directory is passed in the environment
as
$net.
Option
-t
causes
listen1
to run as the invoking user; the default
is to become
none
before listening.
Option
-v
causes verbose logging on standard output.
See
/rc/bin/tlssrvtunnel
for an example.