Proc::PidUtil - PID file management utilities
use Proc::PidUtil qw( if_run_exit is_running make_pidfile zap_pidfile get_script_name :all );
Proc::PidUtil provides utilities to manage PID files
$rv = if_run_exit('path',$message);
This routine checks for a file named:
in the the $path directory. If a file is found and the PID found in the file is currently a running job, there is no return, the subroutine prints the (scriptname): $pid, $message to STDERR and exits.
If there is no file or the PID does not match a running job, run_exit returns true.
input: path for pidfiles return: true if not running else exits
Note: also exits if $path is false
$rv = is_running('path2pidfile');
Check that the job described by the pid file is running.
input: path 2 pid file returns: pid or false (0) if not running
$rv = make_pidfile('path2pidfile',$pid);
Open a pid file and insert the pid value.
input: path 2 pid file, pid value || $$ returns: pid or false (0) on error
$rv = zap_pidfile($path);
input: path for pidfiles returns: return value of 'unlink'
$me = get_script_name();
This function returns the script name portion of the path found in $0;
input: none returns: script name i.e. if the script name is: /usr/local/stuff/scripts/sc_admin.pl $me = get_script_name(); returns ('sc_admin.pl')
if_run_exit is_running make_pidfile zap_pidfile get_script_name
Copyright 2003 -2014, Michael Robinton <firstname.lastname@example.org>
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Michael Robinton <email@example.com>