PEXEC(1)

NAME
pexec - executing commands in parallel

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 <apal@szofi.elte.hu>

COPYRIGHT
Copyright © 2007, 2008-2009; Pal, Andras <apal@szofi.elte.hu>

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.

SEE ALSO
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.