Joachim Bargsten > Proc-ProcessTable-0.50 > Proc::ProcessTable

Download:
Proc-ProcessTable-0.50.tar.gz

Dependencies

Annotate this POD

Related Modules

Devel::Size
IO::Handle
Data::Dumper
Win32::Mutex
IPC::Open3
Net::Server
Win32::Process
Win32::API
Solaris::Procfs
Apache::GTopLimit
more...
By perlmonks.org

CPAN RT

New  19
Open  6
Stalled  1
View/Report Bugs
Module Version: 0.50   Source   Latest Release: Proc-ProcessTable-0.51

NAME ^

Proc::ProcessTable - Perl extension to access the unix process table

SYNOPSIS ^

  use Proc::ProcessTable;

  $p = new Proc::ProcessTable( 'cache_ttys' => 1 ); 
  @fields = $p->fields;
  $ref = $p->table;

DESCRIPTION ^

Perl interface to the unix process table.

METHODS ^

new

Creates a new ProcessTable object. The constructor can take the following flags:

enable_ttys -- causes the constructor to use the tty determination code, which is the default behavior. Setting this to 0 disables this code, thus preventing the module from traversing the device tree, which on some systems, can be quite large and/or contain invalid device paths (for example, Solaris does not clean up invalid device entries when disks are swapped). If this is specified with cache_ttys, a warning is generated and the cache_ttys is overridden to be false.

cache_ttys -- causes the constructor to look for and use a file that caches a mapping of tty names to device numbers, and to create the file if it doesn't exist. This feature requires the Storable module. By default, the cache file name consists of a prefix /tmp/TTYDEVS_ and a byte order tag. The file name can be accessed (and changed) via $Proc::ProcessTable::TTYDEVSFILE.

fields

Returns a list of the field names supported by the module on the current architecture.

table

Reads the process table and returns a reference to an array of Proc::ProcessTable::Process objects. Attributes of a process object are returned by accessors named for the attribute; for example, to get the uid of a process just do:

$process->uid

The priority and pgrp methods also allow values to be set, since these are supported directly by internal perl functions.

EXAMPLES ^

 # A cheap and sleazy version of ps
 use Proc::ProcessTable;

 $FORMAT = "%-6s %-10s %-8s %-24s %s\n";
 $t = new Proc::ProcessTable;
 printf($FORMAT, "PID", "TTY", "STAT", "START", "COMMAND"); 
 foreach $p ( @{$t->table} ){
   printf($FORMAT, 
          $p->pid, 
          $p->ttydev, 
          $p->state, 
          scalar(localtime($p->start)), 
          $p->cmndline);
 }


 # Dump all the information in the current process table
 use Proc::ProcessTable;

 $t = new Proc::ProcessTable;

 foreach $p (@{$t->table}) {
  print "--------------------------------\n";
  foreach $f ($t->fields){
    print $f, ":  ", $p->{$f}, "\n";
  }
 }              

CAVEATS ^

Please see the file README in the distribution for a list of supported operating systems. Please see the file PORTING for information on how to help make this work on your OS.

AUTHOR ^

D. Urist, durist@frii.com

SEE ALSO ^

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

syntax highlighting: