SRV(4)                                                     SRV(4)

     NAME
          srv, srvold9p, 9fs, srvssh - start network file service

     SYNOPSIS
          srv [ -abcCemnq ] [ -s seconds ] [net!]system[!service] [
          srvname [ mtpt ] ]

          srvssh [ -r ] [ -R ] [ -s ] [ -u u9fspath ] system [ srvname
          [ mtpt ] ]

          9fs [net!]system [mountpoint]

          srvold9p [ -abcCdF ] [ -p servicename ] [ -s | -m mountpoint
               ] [ -u user ] [ -x command | -n network-addr | -f file
               ]

     DESCRIPTION
          Srv dials the given machine and initializes the connection
          to serve the 9P protocol.  By default, it connects to the
          `9fs' (9P) service, which for TCP is port 564.  It then cre-
          ates in /srv a file named srvname. Users can then mount (see
          bind(1)) the service, typically on a name in /n, to access
          the files provided by the remote machine.  If srvname is
          omitted, the first argument to srv is used.  Option m
          directs srv to mount the service on /n/system or onto mtpt
          if it is given.  Option q suppresses complaints if the /srv
          file already exists.  The a, b, c, C, and n options are used
          to control the mount flags as in mount (see bind(1)). The e
          option causes srv to treat system as a shell command to be
          executed rather than an address to be dialed.  The s option
          causes srv to sleep for the specified number of seconds
          after establishing the connection before posting and mount-
          ing it.  This is sometimes needed by srvssh.

          The specified service must serve 9P.  Usually service can be
          omitted; when calling some non-Plan-9 systems, a service
          such as u9fs must be mentioned explicitly.

          The 9fs command does the srv and the mount necessary to make
          available the files of system on network net. The files are
          mounted on mountpoint, if given; otherwise they are mounted
          on /n/system.  If system contains `/' characters, only the
          last element of system is used in the /n name.

          9fs recognizes some special names, such as dump to make the
          dump file system available on /n/dump.  9fs is an rc(1)
          script; examine it to see what local conventions apply.

          Srvssh is an rc(1) command that connects to a remote Unix
          system via ssh(1) and starts u9fs(4). The -u option

     Page 1                       Plan 9             (printed 3/28/24)

     SRV(4)                                                     SRV(4)

          specifies the path to the u9fs binary on the remote system.
          (By default, an unrooted path of u9fs is used; if the binary
          is in the path of the remote SSH server, you don't need the
          -u option.)  For information about the other options, see
          the introductory comment in /rc/bin/srvssh.  The arguments
          are the same as srv.

          Srvold9p is a compatibilty hack to allow Fourth Edition Plan
          9 systems to connect to older 9P servers.  It functions as a
          variant of srv that performs a version translation on the 9P
          messages on the underlying connection.  Some of its options
          are the same as those of srv; the special ones are:

          -d            Enable debugging.

          -F            Insert a special (internal) filter process to
                        the connection to maintain message boundaries;
                        usually only needed on TCP connections.

          -p servicename
                        Post the service under srv(3) as
                        /srv/servicename.

          -u user       When connecting to the remote server, log in
                        as user. Since srvold9p does no authentica-
                        tion, and since new kernels cannot authenti-
                        cate to old services, the likeliest value of
                        user is none.

          -x command    Run command and use its standard input and
                        output as the 9P service connection.  If the
                        command string contains blanks, it should be
                        quoted.

          -n network-addr
                        Dial network-addr to establish the connection.

          -f file       Use file (typically an existing srv(3) file)
                        as the connection.

          Srvold9p is run automatically when a cpu(1) call is received
          on the service port for the old protocol.

     EXAMPLES
          To see kremvax's and deepthought's files in /n/kremvax and
          /n/deepthought:

               9fs kremvax
               9fs hhgttg /n/deepthought

          To mount as user none a connection to an older server

     Page 2                       Plan 9             (printed 3/28/24)

     SRV(4)                                                     SRV(4)

          kgbsun:

               srvold9p -u none -m /n/kgbsun -p kgbsun -n il!kgbsun

          Other windows may then mount the connection directly:

               mount /srv/kgbsun /n/kgbsun

          To connect to an instance of the Unix server u9fs(4) started
          via ssh(1):

               srvssh unix

     FILES
          /srv/*  ports to file systems and servers posted by srv and
                  9fs

     SOURCE
          /sys/src/cmd/srv.c
          /rc/bin/9fs
          /rc/bin/srvssh
          /sys/src/cmd/srvold9p

     SEE ALSO
          bind(1), auth(2), dial(2), srv(3), exportfs(4), import(4),
          ftpfs(4), u9fs(4)

     BUGS
          Srv does not explicitly report failures of auth_proxy (see
          auth(2)); mount (see bind(1)) does.

     Page 3                       Plan 9             (printed 3/28/24)