This file is indexed.

/usr/lib/perl5/Proc/ProcessTable/Process.pm is in libproc-processtable-perl 0.45-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package Proc::ProcessTable::Process;

use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD);

require Exporter;
require AutoLoader;

@ISA = qw(Exporter AutoLoader);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
@EXPORT = qw(
	
);
$VERSION = '0.02';


# Preloaded methods go here.
use Carp;
use File::Basename;

sub AUTOLOAD {
  my $self = shift;
  my $type = ref($self)
    or croak "$self is not an object";
  
  my $name = $AUTOLOAD;
  $name =~ s/.*://;		# strip fully-qualified portion
  
  unless (exists $self->{$name} ) {
    croak "Can't access `$name' field in class $type";
  }
  
  if (@_) {
    return $self->{$name} = shift;
  } else {
    return $self->{$name};
  }
}

########################################################
# Kill; just a wrapper for perl's kill at the moment
########################################################
sub kill {
  my ($self, $signal) = @_;
  return( kill($signal, $self->pid) );
}

########################################################
# Get/set accessors for priority and process group 
# (everything else is just a get, so handled by autoload)
#########################################################

# Hmmm... These could use the perl functions to get if not stored on the object
sub priority {
  my ($self, $priority) = @_;
  if( defined($priority) ){
    setpriority(0, $self->pid, $priority);
    if( getpriority(0, $self->pid) == $priority ){  # Yuck; getpriority doesn't return a status
      $self->{priority} = $priority;
    }
  }
  return $self->{priority};
}

sub pgrp {
  my ($self, $pgrp) = @_;
  if( defined($pgrp) ){
    setpgrp($self->pid, $pgrp);
    if( getpgrp($self->pid) == $pgrp ){ # Ditto setpgrp
      $self->{pgrp} = $pgrp;
    }
  }
  return $self->{pgrp};
}


# Apparently needed for mod_perl
sub DESTROY {}

# Autoload methods go after =cut, and are processed by the autosplit program.

1;
__END__

=head1 NAME

Proc::ProcessTable::Process - Perl process objects

=head1 SYNOPSIS

 $process->kill(9);
 $process->priority(19);
 $process->pgrp(500);
 $uid = $process->uid;
 ...

=head1 DESCRIPTION

This is a stub module to provide OO process attribute access for
Proc::ProcessTable. Proc::ProcessTable::Process objects are
constructed directly by Proc::ProcessTable; there is no constructor
method, only accessors.

=head1 METHODS

=over 4

=item kill

Sends a signal to the process; just an aesthetic wrapper for perl's
kill. Takes the signal (name or number) as an argument. Returns number
of processes signalled.

=item priority

Get/set accessor; if called with a numeric argument, attempts to reset
the process's priority to that number using perl's <B>setpriority
function. Returns the process priority.

=item pgrp

Same as above for the process group.

=item all other methods...

are simple accessors that retrieve the process attributes for which
they are named. Currently supported are:

  uid         UID of process
  gid         GID of process
  euid        effective UID of process           (Solaris only)
  egid        effective GID of process           (Solaris only)
  pid         process ID
  ppid        parent process ID
  spid        sprod ID                           (IRIX only)
  pgrp        process group
  sess        session ID
  cpuid       CPU ID of processor running on     (IRIX only)
  priority    priority of process
  ttynum      tty number of process
  flags       flags of process
  minflt      minor page faults                  (Linux only)
  cminflt     child minor page faults            (Linux only)
  majflt      major page faults                  (Linux only)
  cmajflt     child major page faults            (Linux only)
  utime       user mode time (1/100s of seconds) (Linux only)
  stime       kernel mode time                   (Linux only)
  cutime      child utime                        (Linux only)
  cstime      child stime                        (Linux only)
  time        user + system time                 
  ctime       child user + system time
  timensec    user + system nanoseconds part	 (Solaris only)
  ctimensec   child user + system nanoseconds    (Solaris only)
  qtime       cumulative cpu time                (IRIX only)
  size        virtual memory size (bytes)
  rss         resident set size (bytes)
  wchan       address of current system call 
  fname       file name
  start       start time (seconds since the epoch)
  pctcpu      percent cpu used since process started
  state       state of process
  pctmem      percent memory			 
  cmndline    full command line of process
  ttydev      path of process's tty
  clname      scheduling class name              (IRIX only)

See the "README.osname" files in the distribution for more
up-to-date information. 

=back

=head1 AUTHOR

D. Urist, durist@frii.com

=head1 SEE ALSO

Proc::ProcessTable.pm, perl(1).

=cut