Puneet Varma (Editor)

Pexec

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

pexec is a command-line driven utility for Linux or other Unix-like operating systems which allows the user to execute "for ~ do ~ done" like shell loops in parallel. The specified command or (a piece of) script can be executed on both local and remote host computers, in the case of remote execution, ssh is used to build a secure tunnel between the hosts. Like in shell loops, a pre-defined shell (environmental) variable is varied during the loop which is passed transparently to the command or script. pexec is a free software utility, and part of the GNU Project. It is available under the terms of GPLv3 as well as it is part of the current Debian testing release.

Usage

The most common usage is to replace the shell loop, for example:

to the form of:

where the set with the 4 elements of "alpha" "bravo" "charlie" and "delta" define the possible values for the (environmental) variable $x. The program pexec features also

  • automatic redirection of standard input, output and error from/to regular files;
  • taking the input set from a file instead of command line argument;
  • the capability for re-formatting the output and error streams;
  • support for mutual exclusions and atomic command executions inside the shell loop (in order to, e.g. avoid unexpectedly high I/O load);
  • using alternative remote shells instead of ssh.
  • using supervisor daemons to balance between the resources of concurrent pexec instances.
  • Such optional features can be requested using command-line arguments. By default, pexec tries to detect the number of CPUs and uses all of them.

    References

    Pexec Wikipedia