arshell - remote shell for arrays
arshell [options...] [username@]host command
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 parsing 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 considered 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 background 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 username, 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 discarded 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 rsh).
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.
-D or -direct
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
authentication unless the -Kl and -Kr options are also specified.
-D is the default behavior under normal circumstances (but see the
description of the ARRAYD_FORWARD variable, below).
-F or -forward
Indicates that the request should be forwarded to the remote machine
via the local array services daemon, rather than sent directly to
it. -F will become the default behavior if the value of the
ARRAYD_FORWARD environment variable begins with the letter "Y" (as
in "yes"; it may be in either upper or lower case).
-Kl key or -localkey key
Use key for the local authentication key when communicating directly
with the remote array services daemon. key is an unsigned 64-bit
value. The default local key is obtained from the environment
variable ARRAYD_LOCALKEY; 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.
-Kr key or -remotekey key
Use key for the remote authentication key when communicating
directly with the remote array services daemon. key is an unsigned
64-bit value. The default remote key is obtained from the
environment variable ARRAYD_REMOTEKEY; 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
Specifies that the command should be executing using the account of
username on the remote machine. username must be equivalent (in the
sense of rlogin(1C)) to your local userid.
-N 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.
-O 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!
-p port or -port port
Specifies the port address of the array services daemon 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.
-s 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.
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
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.
PPPPaaaaggggeeee 3333 [ Back ]