


ProcessTable(3pUser Contributed Perl DocumentatioProcessTable(3p)


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 diables
           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 overriden 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 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 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} ){



perl v5.12.2                2008-09-08                          1





ProcessTable(3pUser Contributed Perl DocumentatioProcessTable(3p)


          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).


























perl v5.12.2                2008-09-08                          2


