-
-
17 Oct 2014 22:56:58 UTC
- Distribution: Proc-ProcessTable
- Module version: 0.51
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Repository
- Issues (26)
- Testers (1712 / 95 / 4)
- Kwalitee
Bus factor: 3- 56.02% Coverage
- License: perl_5
- Activity
24 month- Tools
- Download (69.47KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- File::Find
- Storable
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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).
Module Install Instructions
To install Proc::ProcessTable, copy and paste the appropriate command in to your terminal.
cpanm Proc::ProcessTable
perl -MCPAN -e shell install Proc::ProcessTable
For more information on module installation, please visit the detailed CPAN module installation guide.