arshell - remote shell for arrays
SYNOPSIS
arshell [options...] [username@]host command
DESCRIPTION
arshell is an array-cognizant variation of the standard
rsh(1C) command: it connects to the specified host and
executes the specified command. For the purposes of pars
ing the arshell command line, host (optionally prepended
with username) is considered to be the first argument that
does not being with the character "-", and command is con
sidered to be the second such argument, as well as all of
the arguments following it.
arshell copies its standard input to the remote command,
the standard output of the remote command to its standard
output, and the standard error of the remote command to
its standard error. Interrupt, quit and terminate signals
are propagated to the remote command; arshell normally
terminates when the remote command does. If the -n option
is specified, the remote command's standard input is taken
from /dev/null instead of arshell's standard input; this
can be useful if you intend to put arshell in the back
ground under certain shells without redirecting its input
away from the terminal, since doing so may cause arshell
to block even if the remote program does not try to read
from its standard input.
The remote username used is the same as your local user
name, unless you specify a different remote name with the
-l option or by using the username@host format. This
remote name must be equivalent (in the sense of
rlogin(1C)) to the originating account; no provision is
made for specifying a password with a command.
If you omit command, you will be logged in on the remote
host using rlogin(1C) rather than arshell itself. In this
case, arguments that are unique to arshell will be dis
carded while any additional arguments known to rlogin (for
example, -L) will be passed along.
The connection to the remote machine is established using
the array services daemons on both the local and remote
machines. This allows additional information, such as
your array session handle on the local machine, to be
passed along to the remote machine. If array services are
not available on either the local or remote machine, then
an attempt will be made to establish a connection using
the normal rsh(1C) command. Thus, it is possible to use
arshell as a replacement for rsh. (However, this should
be done by placing arshell earlier in the path than rsh,
not by replacing rsh since arshell may need to invoke
Shell metacharacters that are not quoted are interpreted
on the local machine, while quoted metacharacters are
interpreted on the remote machine. Thus the command
arshell otherhost cat remotefile >> localfile appends the
remote file remotefile to the local file localfile, while
arshell otherhost cat remotefile ">>" otherremotefile
appends remotefile to otherremotefile.
COMMAND LINE OPTIONS
These command line options are only relevant when both the
local and remote systems are running array services and
will be discarded if the command ends up being referred to
rlogin or rsh. In addition to these command line options,
the standard command line options for rsh and rlogin are
also accepted.
--DD or --ddiirreecctt
Indicates that the request should be sent directly to
the remote machine, rather than forwarded to that
machine by the local array services daemon. This
will fail on systems that use array services authen
tication unless the -Kl and -Kr options are also
specified. --DD is the default behavior under normal
circumstances (but see the description of the
AARRRRAAYYDD_FFOORRWWAARRDD variable, below).
--FF or --ffoorrwwaarrdd
Indicates that the request should be forwarded to the
remote machine via the local array services daemon,
rather than sent directly to it. --FF will become the
default behavior if the value of the AARRRRAAYYDD_FFOORRWWAARRDD
environment variable begins with the letter "Y" (as
in "yes"; it may be in either upper or lower case).
--KKll key or --llooccaallkkeeyy key
Use key for the local authentication key when commu
nicating directly with the remote array services dae
mon. key is an unsigned 64-bit value. The default
local key is obtained from the environment variable
AARRRRAAYYDD_LLOOCCAALLKKEEYY; if that does not exist, no key is
used. The actual role played by key depends on the
authentication method used by array services in a
particular configuration.
--KKrr key or --rreemmootteekkeeyy key
Use key for the remote authentication key when commu
nicating directly with the remote array services dae
mon. key is an unsigned 64-bit value. The default
remote key is obtained from the environment variable
AARRRRAAYYDD_RREEMMOOTTEEKKEEYY; if that does not exist, no key is
used. The actual role played by key depends on the
particular configuration.
--ll username
Specifies that the command should be executing using
the account of username on the remote machine. user
name must be equivalent (in the sense of rlogin(1C))
to your local userid.
--NN Do not revert to /usr/bsd/rsh if an array services
daemon is not found on the local and/or remote
machine. In this case, the command will simply fail.
--OO Force usage of /usr/bsd/rsh. Useful if arshell has
been placed in the path before /usr/bsd with the name
"rsh". Warning: an infinite loop will occur if
/usr/bsd/rsh is replaced by arshell!
--pp port or --ppoorrtt port
Specifies the port address of the array services dae
mon on the remote machine. Defaults to the value of
the "ARRAYD_PORT" environment variable if present, or
the standard port number of the "sgi-arrayd" service
otherwise.
--ss Indicates that the rest of the command line should be
treated as the command to be executed on the remote
machine. This can be useful if the command happens
to look like an arshell option.
NOTES
The file /usr/sbin/arshell is actually a wrapper script
that exec's the binary /usr/lib/array/bin/arshell. This
allows the system administrator to set standard options
(e.g. -F) or override the actual binary that is used.
SEE ALSO
array(1), rsh(1C).
BUGS
If you are using csh(1) and put arshell in the background
without redirecting its input away from the terminal, it
blocks even if no reads are posted by the remote command.
If no input is desired, you should use the -n option,
which redirects the input of arshell to /dev/null.
You cannot run an interactive command (like vi(1)); use
rlogin(1C).
Job control signals stop the local arshell process only;
this is arguably wrong, but currently hard to fix.
Man(1) output converted with
man2html