File Coverage

blib/lib/XAS/Lib/Pidfile/Unix.pm
Criterion Covered Total %
statement 3 18 16.6
branch 0 6 0.0
condition 0 3 0.0
subroutine 1 3 33.3
pod 1 2 50.0
total 5 32 15.6


line stmt bran cond sub pod time code
1             package XAS::Lib::Pidfile::Unix;
2              
3             our $VERSION = '0.02';
4              
5             use XAS::Class
6 1         9 debug => 0,
7             version => $VERSION,
8             base => 'XAS::Base',
9             mixins => 'is_running scan_name',
10             utils => 'run_cmd trim compress',
11 1     1   898 ;
  1         2  
12              
13             # ----------------------------------------------------------------------
14             # Public Methods
15             # ----------------------------------------------------------------------
16              
17             sub scan_name {
18 0     0 0   my $self = shift;
19              
20             # just return the name of the script
21              
22 0           my $c = sprintf('%s', $self->env->script);
23              
24 0           return compress($c);
25              
26             }
27              
28             sub is_running {
29 0     0 1   my $self = shift;
30              
31 0           my $pid = $self->_get_pid();
32 0           my $commandline = $self->scan_name();
33              
34 0 0         if (defined($pid)) {
35              
36             # use ps to scan for an existing process with this pid
37              
38 0           my $command = "ps -p $pid -o comm=";
39 0           my ($output, $rc, $sig) = run_cmd($command);
40              
41 0 0 0       if (defined($rc) && $rc == 0) {
42              
43 0           foreach my $line (@$output) {
44              
45 0           $line = compress(trim($line));
46 0           $self->log->debug(sprintf("\"%s\" = \"%s\"", $commandline, $line));
47              
48 0 0         return $pid if ($commandline =~ /$line/);
49              
50             }
51              
52             }
53              
54             }
55              
56 0           return undef;
57              
58             }
59              
60             # ----------------------------------------------------------------------
61             # Private Methods
62             # ----------------------------------------------------------------------
63              
64             1;
65              
66             __END__