NAME
XAS::Lib::PidFile - A class to manage pid files within XAS
SYNOPSIS
use XAS::Lib::PidFile;
my $pid = XAS::Lib::PidFile->new(
-pid => $$,
-file => File('/', 'var', 'run', 'xas', 'process.pid')
);
if ($pid->is_running) {
printf("already running\n");
exit 2;
}
$pid->write();
...
$pid->remove();
DESCRIPTION
This class will manage pid files for XAS. It loads mixins for individual platforms to help with determining if a process is already running. It uses discretionary directory locking to control access to the pid files.
METHODS
new
This method initialize the module and takes this optional parameters.
- -file
-
Specifiy a pid file to use. This defaults to the pid file defined by XAS::Lib::Modules::Environment for the current procedure.
- -pid
-
Define a pid number. This must be supplied
is_running
This method is loaded thru a mixin. It will attempt to load a currently existing pid file and check to see if that pid is active and if that running process is the same as the current procedure.
If it is, then it will return true. If not then it will return false.
write
Write the current pid to the pid file.
remove
Remove the current pid file.
SEE ALSO
AUTHOR
Kevin L. Esteb, <kevin@kesteb.us>
COPYRIGHT AND LICENSE
Copyright (C) 2014 Kevin L. Esteb
TThis is free software; you can redistribute it and/or modify it under the terms of the Artistic License 2.0. For details, see the full text of the license at http://www.perlfoundation.org/artistic_license_2_0.