shithub: riscv

ref: 60c34ebb2da2b9716169ae4e6db4816d02c28910
dir: /sys/man/8/listen/

View raw version
.TH LISTEN 8
.SH NAME
listen, listen1, tcp7, tcp9, tcp19, tcp21, tcp23, tcp25, tcp53, tcp110, tcp113, tcp143, tcp445, tcp513, tcp515, tcp564, tcp565, tcp566, tcp567, tcp993, tcp995, tcp1723, tcp17007, tcp17008, tcp17009, tcp17010, tcp17013, tcp17019, tcp17020 \- listen for calls on a network device
.SH SYNOPSIS
.B aux/listen
.RB [ -iq ]
.RB [ -d
.IR srvdir ]
.RB [ -t
.IR trustsrvdir ]
.RB [ -n
.IR namespace ]
.RB [ -p
.IR maxprocs ]
.RB [ -a
.IR addr ]
.RI [ proto ]
.PP
.B aux/listen1
[
.B -1tv
]
.RB [ -p
.IR maxprocs ]
.RB [ -n
.IR namespace ]
.I addr
.I cmd
[
.I args...
]
.SH DESCRIPTION
.I Listen
listens on a network for inbound calls to local services.
.I Proto
is the network protocol on which to listen, by default
.BR tcp .
Incoming calls to any address
.B *
are accepted unless
.I addr
is specified with the
.B -a
option. 
The services available are executable, non-empty files in
.I srvdir
or
.IR trustsrvdir .
If neither
.I srvdir
nor
.I trustsrvdir
is given,
.I listen
looks for executable files in
.BR /bin/service .
Services found in
.I srvdir
are executed as user
.BR none ;
services found in
.I trustsrvdir
are executed as the user who started
.IR listen .
When changing user to
.BR none ,
a new namespace is created,
usually by executing
.BR /lib/namespace ,
but
.B -n
selects an alternate
.IR namespace .
The
.B -p
option limits the number of processes that
.I listen
spawns to service the connections. If the
.I maxprocs
limit is reached,
.I listen
will log the event and delay servicing until the number
of connection processes drops below the limit again. A
.I maxprocs
smaller or equal zero means no limit (default).
Option
.B -q
suppresses affirmative log information.
Option
.B -i
suppresses the periodic scan of the service directories for changes.
.PP
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
.BR tcp565 .
.PP
At least the following services are available in
.BR /bin/service .
.TF \ tcp0000
.TP
.B tcp564
serve a piece of the name space using the Plan 9 file system protocol,
with authentication via
.I Tauth
(in
.IR attach (5)),
no encryption,
and multiplex multiple users on a single connection
(used by
.IR srv (4),
and also by Unix systems to see Plan 9 files).
.TP
.B 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
.IR cpu (1)
and
.IR import (4)).
Not usable by user
.IR none .
.TP
.B tcp17008
like
.BR tcp17007 ,
but serves the root of the tree,
forgoing the negotiation for which subtree to serve.
.TP
.B tcp17009
.I rx
remote execution.
.TP
.B tcp17010
server for
.IR cpu (1)
command.
.TP
.B tcp17013
server for old
.IR cpu (1)
command for compatibility with old clients.
.TP
.B tcp17019
server for
.IR rcpu (1),
replaces
.IR rx ,
.IR import (4)
and
.IR cpu (1)
using TLS for encryption. 
.TP
.B tcp17020
TLS encrypted 9P fileserver (t9fs) for
.I srvtls
(see
.IR srv (4)).
.TP
.B tcp7
echo any bytes received (bit mirror)
.TP
.B tcp9
consume any bytes received (bit bucket)
.TP
.B tcp19
.B chargen
service.
.TP
.B tcp21
FTP daemon
.TP
.B tcp23
.B telnet
terminal connection.
.TP
.B tcp25
mail delivery.
.TP
.B tcp53
TCP port for DNS.
.TP
.B tcp110
POP3 port.
.TP
.B tcp113
.B Ident
port (always reports
.BR none ).
.TP
.B tcp143
IMAP4rev1 port.
.TP
.B tcp445
CIFS/SMB file sharing.
.TP
.B tcp513
.B rlogin
terminal connection.
.TP
.B tcp515
LP daemon; see
.IR lp (8).
.TP
.B tcp565
report the address of the incoming call.
.TP
.B tcp993
Secure IMAP4rev1 port.
.TP
.B tcp995
Secure POP3 port.
.TP
.B tcp1723
PPTP (point-to-point tunnelling protocol) service.
.PD
.PP
At least the following services are available in
.BR /bin/service.auth ,
the usual
.IR trustsrvdir .
.TF \ tcp0000
.TP
.B tcp566
validate a SecureNet box.
.TP
.B tcp567
Plan 9 authentication-ticket service.
.PD
.PP
.I Listen1
is a lightweight listener intended for personal use,
modeled from Inferno's
.\" write out this way so automatic programs
.\" don't try to make it into a real man page reference.
\fIlisten\fR(1).
It announces on
.IR address ,
running
.I cmd
.I args...
for each incoming connection;
the network directory is passed in the environment
as 
.BR $net .
Option
.B -t
causes
.I listen1
to run as the invoking user; the default
is to become
.B none
before listening.
Option
.B -1
arms a one-shot listener; it terminates listen1
upon receiving a single call.
Option
.B -v
causes verbose logging on standard output.
See
.B /rc/bin/tlssrvtunnel
for an example.
.SH FILES
.TF /env/sysname
.TP
.B /net/tcp
by convention, TCP device bind point
.SH SOURCE
.B /sys/src/cmd/aux/listen*.c
.br
.B /rc/bin/service*
.SH "SEE ALSO"
.IR authsrv (6),
.IR dial (2)
.SH BUGS
.IR Srvdir ,
.IR trustsrvdir
and
.I namespace
must all be absolute path names.