If you want to just experiment with Queue on a single host, all you
need is a local directory that is protected to be root-accessible only.
For load-balancing, however,
you will need an NFS directory mounted on all your hosts with
'no_root_squash' (see NFS man pages) option turned on. Unfortunately,
the 'no_root_squash' option is required for load-balancing
because the file system is
used to communicate information about jobs to be run. The default
spool directory is under the default GNU sharedstatedir, /usr/local/com/queue .
no_root_squash option is the GNU/Linux name. The option is named differently
under different platforms, see your NFS man pages for the name of the option
that prevents root mapping to nobody on client requests.
Installing GNU Queue for cluster-wide usage
-
Since non-administrators are generally less sophisticated than system administrators, the
default
./configure option is to install GNU Queue in the local directory for use by
a single user only.
System administrators need to specify --enable-root to reconfigure GNU to run with root
privileges. This turns off some options, for example, privileged ports are used instead of
relying on the identd (RFC 931) service if it is installed. See See section Security Issues for a discussion
of security issues.
Run ./configure --enable-root .
When installing with the --enable-root option, configure sets the Makefile to install GNU Queue under
the /usr/local prefix. queue will go in /usr/local/bin , queued daemon will go into /usr/local/sbin ,
/usr/local/com/queue will be the shared spool directory, the host access control list file will go into
/usr/local/share and the queued pid files will go into /usr/local/var . If you want things to go somewhere else,
run ./configure --enable-root --prefix=dir , where dir is the top-level directory where you want things to be installed.
./configure --enable-root takes a number of additional options that you may wish to be aware of, ./configure --help gives
a full listing of them. --bindir specifies where queue goes, --sbindir specifies where queued goes,
--sharedstatedir where the spool directory goes, --datadir where the host access control file goes,
and --localstatefile where the queued pid files go.
If ./configure fails inelegantly, make sure lex is installed. GNU Flex
is an implementation of lex available from the FSF, http://www.gnu.org .
-
Now run
make to compile the programs. If your make complains about
a syntax error in the Makefile, you'll need to run
GNU Make which is hopefully
already installed on your machine (perhaps as "gmake" or "gnumake"), but,
if not, you can obtain it from the FSF
on prep.ai.mit.edu or its many mirrors.
-
If all goes well,
make install will install the programs into directory you specified with ./configure . Missing
directories will be created.
The name of the localhost make install is being run on will be added to the host access control list if it is not
already there.
-
Try running Queue.
Start up ./queued on the localmachine. (If you did a
make install on the localhost the localhost should already
be in the host access control list file.)
./queue --help gives a list of options to Queue.
Here are some simple examples:
> queue -i -w -n -- hostname
> queue -i -r -n -- hostname
Here is a more sophisticated example. Try suspending and resuming it with Control-Z and 'fg':
> queue -i -w -p -- emacs -nw
If this example works on the localhost, you want want to add additional hosts to the host
access control list in share (or --datadir) and start up queued on these.
> queue -i -w -p -h hostname -- emacs -nw
will run emacs on hostname . Without the -h argument, it will run the job on the
"best" or "least-loaded" host in the ACL. See How do I configure a job queue's "profile" file?
for details on how
host selection is made.
You can also create additional queues for use with the -q and -d commands,
as outlined for users below. Each spooldir must have a profile file
associated with it. See section How do I configure a job queue's "profile" file?
for details.
If you encounter problems with installation not explained here you should
subscribe to the development list, queue-tips, and ask for help. Instructions
for subscribing may be found off the
development page.
werner.krebs@yale.edu |