xref: /plan9/sys/man/4/srv (revision e06f534bbaa4097bc6f4764ef1dd2dc3338fbd40)
SRV 4
NAME
srv, srvold9p, 9fs, srvssh - start network file service
SYNOPSIS
srv [ -abceCmnq ] [ -s seconds ] [ net !] system\c [! service ] [ srvname [ mtpt ] ]

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

9fs [ net !] system [ mountpoint ]

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

DESCRIPTION
Srv dials the given machine and initializes the connection to serve the 9P protocol. 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 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 flags are used to control the mount flag as in mount (see bind (1)). The e flag causes srv to treat system as a shell command to be executed rather than an address to be dialed. The s flag causes srv to sleep for the specified number of seconds after establishing the connection before posting and mounting 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\f1. If system contains .L / 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) 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 special ones are:

-d Enable debugging

-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 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.

-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\f1.

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 :
.EX 9fs kremvax 9fs hhgttg /n/deepthought

To mount as user none a connection to an older server kgbsun:

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

Other windows may then mount the connection directly:

.EX mount /srv/kgbsun /n/kgbsun

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

.EX srvssh unix
NOTE
The TCP port used for 9P is 564.
FILES
.TF /srv/*

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

SOURCE
/sys/src/cmd/srv.c

/rc/bin/9fs

/rc/bin/srvssh

"SEE ALSO"
bind (1), dial (2), srv (3), ftpfs (4), u9fs (4)