paexec is an utility that distributes given tasks (stdin) across several CPUs or machines in a network.
paexec has no limited internal buffers anymore. All they are resized automatically as it is needed. PAEXEC_BUFSIZE environment variable sets an *initial* buffer size, not *maximum* one.
README: notes about non-standard function getopt_long, and advice how to build paexec on platforms with no getopt_long support (JP-UX, Solaris etc.).
Installation:
0) BSD make is required. I name it 'bmake' but its real name may
vary. pmake or just make are possible variants.
If you need to change the default building options,
run bmake like this
env [YOUR_ASSIGNMENTS] bmake
See example section below
1) "libmaa" library is required to build paexec. It is a part of
"dict" project http://sourceforge.net/projects/dict
Quick sample of building:
gzip -dc /home/cheusov/downloads/dictd-X.Y.Z.tar.gz | tar -xf-
cd dictd-X-Y-Z/libmaa
./configure
gmake
gmake install
NOTE: gmake is GNU make here! Under most Linux distros
it is named make.
2) Uncompress paexec tarball you've downloaded like this
gzip -dc paexec-X-Y-Z.tar.gz | tar -xf-
3) cd paexec-X-Y-Z
4) bmake
5) (optional!) bmake install-dirs
6) bmake install
There are a lot of Makefile variables that can be changed during
building and installation.
paexec's own variables (All they are at the begining of Makefile):
PREFIX - where paexec is installed to
LIBMAA - linker option for linking "maa" library
BSD make's variables (most commonly used,
for all others - see make's documentation and .mk files)
BINDIR - where paexec executable itself is installed to
MANDIR - where manual pages are installed to
BINOWN - paexec executable owner
BINGRP - paexec executable group
MANOWN - man page owner
MANGRP - man page group
Examples of building and installing:
1) bmake all install-dirs install
2) env CC=icc
PREFIX=/home/cheusov/local
CPPFLAGS='-I/usr/pkg/include'
LDFLAGS='-L/usr/pkg/lib -Wl,-rpath -Wl,/usr/pkg/lib'
LDADD=-lextralib
CFLAGS='-Werror -Wall'
BINOWN=cheusov
BINGRP=users
MANOWN=cheusov
MANGRP=users
MKCATPAGES=no
bmake -s all install-dirs install
3) paexec needs the non-portable getopt_long(3) present in
*BSD and Linux OSes. If it is absent in your OS,
you can build paexec like the following.
echo '#include ' > ./config.h
env
CPPFLAGS='-DNO_PORTABHACKS_H=1 -DHAVE_CONFIG_H=1'
LDFLAGS='-lnbcompat'
bmake -s all install-dirs install
where libnbcompat is a NetBSD's portability library
Of course, you can also use any other implementation of getopt_long.
NOTE: No, I'll not use autotools
Product's homepage
What's New in This Release: [ read full changelog ]
· NULL dereference (sigsegv) has been fixed in paexec(1).
· It happened when the first line given on input was empty.
· An entire command passed to ssh-like transport is now shquoted.
· In particular this fixes -x, which didn't work together with -t. "paexec -g" now accepts an empty string as a task.
· A minor fix has been made in the paexec_reorder man page.
· More regression tests have been added.