\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename readme.info
@settitle Perl IPC::Locker Installation
@c %**end of header

@c DESCRIPTION: TexInfo: DOCUMENT source run through texinfo to produce README file
@c Use 'make README' to produce the output file
@c Before release, run C-u C-c C-u C-a (texinfo-all-menus-update)

@node Top, Copyright, (dir), (dir)
@chapter IPC::Locker

This is the IPC::Locker Perl Package.

@menu
* Copyright::                   
* Description::                 
* Obtaining Distribution::      
* Supported Systems::           
* Installation::                
@end menu

@node Copyright, Description, Top, Top
@section Copyright

This package is Copyright 1999-2007 by Wilson Snyder @email{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.

@node Description, Obtaining Distribution, Copyright, Top
@section 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.

@subsection IPC::Locker

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

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

See @samp{man IPC::Locker} after installation.

@subsection lockerd

lockerd is the daemon that supports IPC::Locker. See @samp{man
lockerd} after installation.

@subsection IPC::PidStat

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

@subsection pidstat

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

@subsection pidstatd

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

@subsection pidwatch

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

@subsection check_lockerd and check_pidstatd

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

@node Obtaining Distribution, Supported Systems, Description, Top
@section Obtaining Distribution

The latest version is available at 
@uref{http://www.perl.org/CPAN/}

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

@node Supported Systems, Installation, Obtaining Distribution, Top
@section Supported Systems

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

@itemize @bullet
@item i386-linux
@item sparc-sun-solaris2.7
@end itemize

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

@node Installation,  , Supported Systems, Top
@section Installation

@enumerate
@item
@code{cd} to the directory containing this README notice.

@item
Type @samp{perl Makefile.PL} to configure IPC::Locker for your system.

@item
Type @samp{make} to compile IPC::Locker.

@item
Type @samp{make test} to check the compilation.

@item
Type @samp{make install} to install the programs and any data files and
documentation.

@item
You may wish to install @samp{lockerd} and @samp{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 @samp{chkconfig pidstatd on}
and @samp{chkconfig lockerd on}.

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

@end enumerate


