NAME
rcmd
—
backend driver for
rcmd(3)
SYNOPSIS
rcmd |
[-46dn ] [-l
username] [-p
port] [-u
localusername] host
command |
DESCRIPTION
rcmd
executes command on
host.
rcmd
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;
rcmd
normally terminates when the remote command
does. The options are as follows:
-4
- Use IPv4 addresses only.
-6
- Use IPv6 addresses only.
-d
- The
-d
option turns on socket debugging (using setsockopt(2)) on the TCP sockets used for communication with the remote host. -l
- By default, the remote username is the same as the local username. The
-l
option allows the remote name to be specified. Another possible way to specify the remote username is the notation user@host. -n
- The
-n
option redirects input from the special device /dev/null (see the BUGS section of this manual page). -p
port- Uses the given port instead of the one assigned to the service “shell”. May be given either as symbolic name or as number.
-u
- The
-u
option allows the local username to be specified. Only the superuser is allowed to use this option.
Shell metacharacters which are not quoted are interpreted on local machine, while quoted metacharacters are interpreted on the remote machine. For example, the command
rcmd otherhost cat remotefile
>> localfile
appends the remote file remotefile to the local file localfile, while
rcmd otherhost cat remotefile
">>" other_remotefile
appends remotefile to other_remotefile.
FILES
- /etc/hosts
SEE ALSO
HISTORY
The rcmd
command appeared in
NetBSD 1.3 and is primarily derived from
rsh(1). Its purpose was to create a backend driver for
rcmd(3) that would allow the users of
rcmd(3) to no longer require super-user privileges.
BUGS
If you are using
csh(1) and put a rcmd
in the background
without redirecting its input away from the terminal, it will block even if
no reads are posted by the remote command. If no input is desired you should
redirect the input of rcmd
to
/dev/null using the -n
option.
You cannot use rcmd
to run an interactive
command (like rogue(6) or
vi(1)).
Use rlogin(1) instead.
The stop signal, SIGSTOP
, will stop the
local rcmd
process only. This is arguably wrong, but
currently hard to fix for reasons too complicated to explain here.