IPC::Locker
***********

This is the IPC::Locker Perl Package.

Copyright
=========

This package is Copyright 1999-2007 by Wilson Snyder wsnyder@wsnyder.org.

You may distribute under the terms of either the GNU General Public License or the Perl Artistic License, as specified in the Perl README file.

This code is provided with no warranty of any kind, and is used entirely at your own risk.

Description
===========

This package provides a server for locks and a package for clients to access that server.  The result is that clients can access named locks on a Internet wide bases, solving critical section problems without the mess of NFS or other file locking techniques.

IPC::Locker
-----------

IPC::Locker is a Perl package which allows cross cluster locking.  For example:

       my $lock = IPC::Locker->lock(host=>'example.std.com');
       ... Critical section ...
       $lock->unlock();

See man IPC::Locker after installation.

lockerd
-------

lockerd is the daemon that supports IPC::Locker. See man lockerd after installation.

IPC::PidStat
------------

IPC::PidStat is a Perl package which answers the question, ``is pid X running on host Y?''.  See man IPC::PidStat after installation.

pidstat
-------

pidstat is a program which answers the question, ``is pid X running on host Y?''.  See man pidstat after installation.

pidstatd
--------

pidstat is the daemon that supports IPC::PidStat and pidstat. See man pidstatd after installation.

pidwatch
--------

pidwatch is a program which starts other programs, and kill that program when another job exists.  See man pidwatch after installation.

uriexec
-------

uriexec is a simple wrapper which allows executing a command which is quoted using URI escapes.  This prevents layered shells from interpreting special characters.  See man uriexec after installation.

check_lockerd and check_pidstatd
--------------------------------

check_lockerd and check_pidstatd are Nagios plugins to check lockerd and pidstatd.  See the Nagios documentation http://www.nagios.org for information on installing plugins.

Obtaining Distribution
======================

The latest version is available at http://www.perl.org/CPAN/

Download the latest package from that site, and decompress. gunzip IPC::Locker_version.tar.gz ; tar xvf IPC::Locker_version.tar

Supported Systems
=================

This version of IPC::Locker has been built and tested on:

  * i386-linux

  * sparc-sun-solaris2.7

It should run on any system with perl and TCP/IP socketing.

Installation
============

 1. cd to the directory containing this README notice.

 2. Type perl Makefile.PL to configure IPC::Locker for your system.

 3. Type make to compile IPC::Locker.

 4. Type make test to check the compilation.

 5. Type make install to install the programs and any data files and documentation.

 6. You may wish to install lockerd and pidstatd in a init.rc file so that it is run at system startup.  Depending on your distribution, you may be able to just copy the examples in init.d/lockerd to /etc/init.d, and type chkconfig pidstatd on and chkconfig lockerd on.

 7. If you are using Nagios (http://www.nagios.org), sample scripts to check the daemons are included in the nagios subdirectory.