SYNOPSIS

pexec [options] [-c|-m] [--] command [arguments] | 'compound command'

DESCRIPTION

Execute commands or shell scripts in parallel on a single host or on remote hosts using a remote shell.

OPTIONS

General options:

-h, --help

Gives general summary about the command line options.

--long-help

Gives a detailed list of command line options.

--version

Gives some version information about the program.

-s, --shell <shell>

Full path (e.g. /bin/sh) of the shell or interpreter to be used for script execution.

-c, --shell-command

Use the specified shell to interpret the command(s) instead of direct execution.

-m, --multiple-command

Allow multiple individual shell command scripts to be executed in parallel with the variation of the parameters.

-e, --environment <variable>

Name of an environmental variable which is set to the respective parameter before each execution.

-n, --number <number>

The maximal number of processes running simultaneously. The <number> itself can even be a complex specification of remote hosts (see documentation for more details).

-C, --control <port>

The control port of a hypervisor daemon (full path of a UNIX socket or an INET host specification).

-p, --list <list>

The single-argument form of main parameter list.

-r, --parameters <list>

The multiple-argument form of the main parameter list.

-f, --listfile <file>

The main parameter list file.

-w, --column <index>

The column index from where the parameters should be taken if they are read from a parameter file.

-t, --complete

Threat the whole line as a single parameter if the parameters are read from a file.

-z, --nice

Sets the scheduling priority of pexec and all children (executed processes) to the priority defined by this nice value.

--

A marker after which the command to execute begins.

Redirecting standard input, output and error:

-i, --input <input>

The (optionally formatted) name of the input file which is used for redirecting the standard input.

-o, --output <output>

The (optionally formatted) name of the output file which is used for redirecting the standard output.

-u, --error <output>

The (optionally formatted) name of the output error file, which is used for redirecting the standard error.

-R, --normal-redirection

Equivalent to specifying --output -, --error - and --input /dev/null.

-a, --output-format <format>

The format of the final standard output redirection if the output of all of the processes are gathered into the same file.

-b, --error-format <format>

The same final redirection format for the standard error.

-x, --omit-newlines

Disable automatic newlines after the output and error formats.

Execution using remote hosts:

-g, --remote-shell <remote_shell>

The name or full path of the remote shell to be used for building the tunnel between the local and the peer host(s). Default: ``/usr/bin/ssh''.

-P, --pexec <pexec>

The full path of the pexec program on the remote hosts. If this option is omitted, pexec tries to figure out from the invoking syntax and/or the current path.

-T, --tunnel

Internal use only (pexec will start in tunnel daemon mode).

Remote control, mutual exclusions and atomic command execution:

-y, --bind <port>

This option lets pexec to be remote controlled via INET or UNIX domain sockets.

-E, --pexec-connection-variable <env>

This option overrides the default environment name PEXEC_REMOTE_PORT to the specified value, which is used by the ``-p|--connect auto'' combination to determine the control socket with which the running pexec instance can be controlled.

-j, --remote

Used to remote control and/or poll the status of other running instances of pexec.

-p, --connect <port>

Remote control port to connect to.

-t, --status

Prints the actual status of the running jobs in a human-readable form.

-l, --lock <mutex>

Locks the specified mutex (if the mutex is not locked by someone else, otherwise it will block until the mutex is released).

-u, --unlock <mutex>

Unlocks the specified mutex.

-m, --mutex <mutex>

Name of the mutex.

-d, --dump <filename>

Dump the content of the given file to standard output, if ``-m|--mutex'' is given, this will be atomic.

-s, --save <filename>

Save the content of standard input to the given file, if ``-m|--mutex'' is given, this will be atomic.

-a, --atomic <command>

Execute the given command. If ``-m|--mutex'' is given, the exectution is going to be atomic with respect to that mutex.

Hypervisor mode:

-H, --hypervisor

Starts pexec in hypervisor mode.

-C, --control <port>

The control port used by the hypervisor.

-l, --load <window>

Use load also to limit the number of simultaneous processes with the specified load average interval (0, 1 or 2, or 1min, 5min or 15min, respectively).

-f, --fifo

First in first out queue processing.

-s, --lifo

Last in first out (stack) queue processing (default).

Logging:

-L, --log <file>

The name of the log file.

-W, --log-level <level>

The logging level.

-V, --verbose

Increase the log level by one.

REPORTING BUGS

Report bugs to <[email protected]>

COPYRIGHT

Copyright © 2007, 2008-2009; Pal, Andras <[email protected]>

This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.

This software was written by Andras Pal. The core part was written while working for the Hungarian-made Automated Telescope (HAT) project to make the data processing more easier and therefore find many-many extrasolar planets. See more information about this project: http://hatnet.hu. Another internal libraries (e.g. numhash.[ch]) were primarily written for other projects.

RELATED TO pexec…

The full documentation for pexec is maintained as a Texinfo manual. If the info and pexec programs are properly installed at your site, the command

  • info pexec

should give you access to the complete manual.