Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ProcessTable(3)	      User Contributed Perl Documentation      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 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).

perl v5.24.1			  2015-08-24		       ProcessTable(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | EXAMPLES | CAVEATS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Proc::ProcessTable&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help