LISTEN(8)                                               LISTEN(8)

     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 - listen
          for calls on a network device

     SYNOPSIS
          aux/listen [-iq] [-d srvdir] [-t trustsrvdir] [-n namespace]
          [-p maxprocs] [net]

          aux/listen1 [ -tv ] [-p maxprocs] [-n namespace] addr cmd [
          args... ]

     DESCRIPTION
          listen listens on a network for inbound calls to local ser-
          vices.  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. The -p option limits
          the number of processes that listen spawns to service the
          connections. If the maxprocs limit is reached, listen will
          log the event and delay servicing until the number of con-
          nection processes drops below the limit again. A maxprocs
          smaller or equal zero means no limit (default).  Option -q
          suppresses affirmative log information.  Option -i sup-
          presses the periodic scan of the service directories for
          changes.

          Service names are made by concatenating the name of the net-
          work with the name of the service or port.  For example, an
          inbound call on the TCP network for port 565 executes ser-
          vice tcp565.

          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

     LISTEN(8)                                               LISTEN(8)

                    start, optional SSL encryption, and no multiplex-
                    ing 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.
          tcp17019  server for rcpu(1), replaces rx, import(4) and
                    cpu(1) using TLS for encryption.
          tcp7      echo any bytes received (bit mirror)
          tcp9      consume any bytes received (bit bucket)
          tcp19     chargen service.
          tcp21     FTP daemon
          tcp23     telnet terminal connection.
          tcp25     mail delivery.
          tcp53     TCP port for DNS.
          tcp110    POP3 port.
          tcp113    Ident port (always reports none).
          tcp143    IMAP4rev1 port.
          tcp445    CIFS/SMB file sharing.
          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).  announces on address,
          running cmd args... for each incoming connection; the net-
          work 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 ver-
          bose logging on standard output.  See /rc/bin/tlssrvtunnel
          for an example.

     FILES
          /net/tcp      by convention, TCP device bind point

     SOURCE
          /sys/src/cmd/aux/listen*.c
          /rc/bin/service*

     LISTEN(8)                                               LISTEN(8)

     SEE ALSO
          authsrv(6), dial(2)

     BUGS
          Srvdir, trustsrvdir and namespace must all be absolute path
          names.