SRV(4)SRV(4)NAME
srv, srvold9p, 9fs, srvssh - start network file service
SYNOPSISsrv [ -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 (9P) service, which for
TCP is port 564. It then creates 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 omit‐
ted, 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 sup‐
presses 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 estab‐
lishing the connection before posting and mounting it. This is some‐
times 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 mount‐
point, 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 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 spe‐
cial ones are:
-d Enable debugging.
-F Insert a special (internal) filter process to the connection to
maintain message boundaries; usually only needed on TCP connec‐
tions.
-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 authentication, and since new kernels cannot
authenticate to old services, the likeliest value of user is
none.
-x command
Run command and use its standard input and output as the 9P ser‐
vice 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 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 ALSObind(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.
SRV(4)