processtable(3)
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 one flag:
- 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 file is /tmp/TTYDEVS by default). This
feature requires the Storable module. - 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 acces
sors 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 %s0;
$t = new Proc::ProcessTable;
printf($FORMAT, "PID", "TTY", "STAT", "START", "COM - MAND");
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 "--------------------------------0;
foreach $f ($t->fields){print $f, ": ", $p->{$f}, "0;} - }
CAVEATS
Please see the file README in the distribution for a list
of supported operating systems. Please see the file PORT
ING for information on how to help make this work on your
OS.
AUTHOR
D. Urist, durist@world.std.com
SEE ALSO
- Proc::ProcessTable::Process.pm, perl(1).