CPU(1)CPU(1)NAMEcpu - connection to CPU server
SYNOPSIScpu [ -h server ] [ -u user ] [ -a auth-method ] [ -P patternfile ] [
-e encryption-hash-algs ] [ -k keypattern ] [ -c cmd args ... ]
cpu [ -R | -O ]
Cpu starts an rc(1) running on the server machine, or the machine named
in the $cpu environment variable if there is no -h option. Rc's stan‐
dard input, output, and error files will be /dev/cons in the name space
where the cpu command was invoked. Normally, cpu is run in an rio(1)
window on a terminal, so rc output goes to that window, and input comes
from the keyboard when that window is current. Rc's current directory
is the working directory of the cpu command itself.
The name space for the new rc is an analogue of the name space where
the cpu command was invoked: it is the same except for architecture-
dependent bindings such as /bin and the use of fast paths to file
servers, if available.
If a -u argument is present, cpu uses the argument as the remote user
If a -c argument is present, the remainder of the command line is exe‐
cuted by rc on the server, and then cpu exits.
If a -P argument is present, the patternfile is passed to exportfs(4)
to control how much of the local name space will be exported to the
The -a command allows the user to specify the authentication mechanism
used when connecting to the remote system. The two possibilities for
p9 This is the default. Authentication is done using the standard
Plan 9 mechanisms, (see authsrv(6)). No user interaction is
netkey Authentication is done using challenge/response and a hand held
authenticator or the netkey program (see passwd(1)). The user
must encrypt the challenge and type the encryption back to cpu.
This is used if the local host is in a different protection
domain than the server or if the user wants to log into the
server as a different user.
The -e option specifies an encryption and/or hash algorithm to use for
the connection. If both are specified, they must be space separated
and comprise a single argument, so they must be quoted if in a shell
command. The default is encryption and hashing. See ssl(3) for
details on possible algorithms. The argument specifies no encryption
algorithm and can be used to talk to older versions of the cpu service.
The -k flag specifies a key pattern to use to restrict the keys
selected by the auth_proxy call used for authentication.
The name space is built by running /usr/$user/lib/profile with the root
of the invoking name space bound to /mnt/term. The service environment
variable is set to cpu; the cputype and objtype environment variables
reflect the server's architecture.
The -R flag causes cpu to run the server (remote) side of the protocol.
It is run from service files such as /bin/service/tcp17010. The -O
flag is similar but simulates the pre-9P2000 version of the cpu proto‐
The name space of the terminal side of the cpu command is mounted, via
exportfs(4), on the CPU side on directory /mnt/term. The files such as
/dev/cons are bound to their standard locations from there.
SEE ALSOrc(1), rio(1), exportfs(4)BUGS
Binds and mounts done after the terminal lib/profile is run are not
reflected in the new name space.
When using the -a option to `log in' as another user, be aware that
resources in the local name space will be made available to that user.