rancid_par(1) parallel command processing


rancid_par [-defiqx] [-c  command] [-l  logfile] [-n
 #] [-p
 #] [file [file...]]


rancid_par takes a list of files to run a command on. The first line of each file begins with a colon (:) or a pound-sign (#). If a colon, the remainder of the line is a command to run for each of the subsequent lines. If a pound-sign, then each subsequent line is a (self-contained) command, unless the -c option was specified, in which case the lines become the arguments replacing the braces ({}s) in the -c argument.

The input file may also be specified on stdin, in the format as previously described.

In each of the cases where the lines of the file, following the first, are not commands (ie: colon or -c), instances of open-close braces ({}) in the command will be replaced by these values.

For example, an inputfile whose contents is:

       : echo {}




run with rancid_par like so:

       %rancid_par -q inputfile

will produce the following output (order will vary):




The command-line options are as follows:

Command to be run on each of the arguments following the command-line options, where the first line of the input file(s) begins with a pound-sign (#).
Print debugging information on standard error (stderr). Repeat the option up to three times for more verbosity.
Split args by spaces, rather than using sh -c. Note: -e is incompatible with the -i option.
No input file or STDIN, just run a quantity of the command specified with -c.
Run commands interactively through (multiple) xterm(1) processes.
Prefix of logfile name, as in prefix.N where N is the rancid_par process number ([0..]).

Default: par.log.<time>.[0..]

Number of simultaneous processes.

Default: 3

-p N
Pause N seconds between running commands.
Quiet mode. Omit the typical processing logs and do not create the log files from -l, instead the children inherit stdout and stderr from rancid_par. -q is mutually exclusive with the -x and -l options and the option appearing last will take precedence.
View rancid_par logs in real-time via an xterm(1).


par.log.T.N Log file; where T is the current time in seconds since the
epoch and N is the rancid_par process number ([0..]).


rancid_par was ported from the perl version. It differs in the following manner:

If rancid_par receives a HUP/INT/TERM/QUIT signal, it does not print the commands that will not be run.

If rancid_par received a HUP/INT/TERM/QUIT signal, it does not exit immediately after sending kill to running jobs. it waits for them to exit so that they are cleaned-up properly. If a second signal is received, it dies immediately.