Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

UUCP Internals Frequently Asked Questions
Section - Execution File Format

( Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Restaurant inspections ]


Top Document: UUCP Internals Frequently Asked Questions
Previous Document: UUCP Lock Files
Next Document: UUCP Protocol
See reader questions & answers on this topic! - Help others by sharing your knowledge
Execution File Format
=====================

UUCP `X.*' files control program execution.  They are created by `uux'.
They are transferred between systems just like any other file.  The
`uuxqt' daemon reads them to figure out how to execute the job
requested by `uux'.

An `X.*' file is simply a text file.  The first character of each line
is a command, and the remainder of the line supplies arguments.  The
following commands are defined:

`C command'
     This gives the command to execute, including the program and all
     arguments.  For example, `rmail ian@airs.com'.

`U user system'
     This names the user who requested the command, and the system from
     which the request came.

`I standard-input'
     This names the file from which standard input is taken.  If no
     standard input file is given, the standard input will probably be
     attached to `/dev/null'.  If the standard input file is not from
     the system on which the execution is to occur, it will also appear
     in an `F' command.

`O standard-output [system]'
     This names the standard output file.  The optional second argument
     names the system to which the file should be sent.  If there is no
     second argument, the file should be created on the executing
     system.

`F required-file [filename-to-use]'
     The `F' command can appear multiple times.  Each `F' command names
     a file which must exist before the execution can proceed.  This
     will usually be a file which is transferred from the system on
     which `uux' was executed, but it can also be a file from the local
     system or some other system.  If the file is not from the local
     system, then the command will usually name a file in the spool
     directory.  If the optional second argument appears, then the file
     should be copied to the execution directory under that name.  This
     is necessary for any file other than the standard input file.  If
     the standard input file is not from the local system, it will
     appear in both an `F' command and an `I' command.

`R requestor-address'
     This is the address to which mail about the job should be sent.
     It is relative to the system named in the `U' command.  If the `R'
     command does not appear, then mail is sent to the user named in the
     `U' command.

`Z'
     This command takes no arguments.  It means that a mail message
     should be sent if the command failed.  This is the default
     behaviour for most modern UUCP packages, and for them the `Z'
     command does not actually do anything.

`N'
     This command takes no arguments.  It means that no mail message
     should be sent, even if the command failed.

`n'
     This command takes no arguments.  It means that a mail message
     should be sent if the command succeeded.  Normally a message is
     sent only if the command failed.

`B'
     This command takes no arguments.  It means that the standard input
     should be returned with any error message.  This can be useful in
     cases where the input would otherwise be lost.

`e'
     This command takes no arguments.  It means that the command should
     be processed with `/bin/sh'.  For some packages this is the default
     anyhow.  Most packages will refuse to execute complex commands or
     commands containing wildcards, because of the security holes this
     opens.

`E'
     This command takes no arguments.  It means that the command should
     be processed with the `execve' system call.  For some packages
     this is the default anyhow.

`M status-file'
     This command means that instead of mailing a message, the message
     should be copied to the named file on the system named by the `U'
     command.

`# comment'
     This command is ignored, as is any other unrecognized command.

Here is an example.  Given the following command executed on system
test1
         uux - test2!cat - test2!~ian/bar !qux '>~/gorp'
(this is only an example, as most UUCP systems will not permit the cat
command to be executed) Taylor UUCP will produce something like the
following `X.'  file:
     U ian test1
     F D.test1N003r qux
     O /usr/spool/uucppublic test1
     F D.test1N003s
     I D.test1N003s
     C cat - ~ian/bar qux
The standard input will be read into a file and then transferred to the
file `D.test1N003s' on system `test2'.  The file `qux' will be
transferred to `D.test1N003r' on system `test2'.  When the command is
executed, the latter file will be copied to the execution directory
under the name `qux'.  Note that since the file `~ian/bar' is already
on the execution system, no action need be taken for it.  The standard
output will be collected in a file, then copied to the directory
`/usr/spool/uucppublic' on the system `test1'.

User Contributions:

Comment about this article, ask questions, or add new information about this topic:




Top Document: UUCP Internals Frequently Asked Questions
Previous Document: UUCP Lock Files
Next Document: UUCP Protocol

Single Page

[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
ian@airs.com (Ian Lance Taylor)





Last Update March 27 2014 @ 02:12 PM