Sys::Statistics::Linux::Processes - Collect linux process statistics.
use Sys::Statistics::Linux::Processes; my $lxs = Sys::Statistics::Linux::Processes->new; # or Sys::Statistics::Linux::Processes->new(pids => \@pids) $lxs->init; sleep 1; my $stat = $lxs->get;
Sys::Statistics::Linux::Processes gathers process informations from the virtual /proc filesystem (procfs).
For more informations read the documentation of the front-end module Sys::Statistics::Linux.
Generated by /proc/<pid>/stat, /proc/<pid>/status, /proc/<pid>/cmdline and getpwuid().
Note that if /etc/passwd isn't readable, the key owner is set to N/a.
ppid - The parent process ID of the process. nlwp - The number of light weight processes that runs by this process. owner - The owner name of the process. pgrp - The group ID of the process. state - The status of the process. session - The session ID of the process. ttynr - The tty the process use. minflt - The number of minor faults the process made. cminflt - The number of minor faults the child process made. mayflt - The number of mayor faults the process made. cmayflt - The number of mayor faults the child process made. stime - The number of jiffies the process have beed scheduled in kernel mode. utime - The number of jiffies the process have beed scheduled in user mode. ttime - The number of jiffies the process have beed scheduled (user + kernel). cstime - The number of jiffies the process waited for childrens have been scheduled in kernel mode. cutime - The number of jiffies the process waited for childrens have been scheduled in user mode. prior - The priority of the process (+15). nice - The nice level of the process. sttime - The time in jiffies the process started after system boot. actime - The time in D:H:M:S (days, hours, minutes, seconds) the process is active. vsize - The size of virtual memory of the process. nswap - The size of swap space of the process. cnswap - The size of swap space of the childrens of the process. cpu - The CPU number the process was last executed on. wchan - The "channel" in which the process is waiting. fd - This is a subhash containing each file which the process has open, named by its file descriptor. 0 is standard input, 1 standard output, 2 standard error, etc. Because only the owner or root can read /proc/<pid>/fd this hash could be empty. cmd - Command of the process. cmdline - Command line of the process.
Generated by /proc/<pid>/statm. All statistics provides information about memory in pages:
size - The total program size of the process. resident - Number of resident set size, this includes the text, data and stack space. share - Total size of shared pages of the process. trs - Total text size of the process. drs - Total data/stack size of the process. lrs - Total library size of the process. dtp - Total size of dirty pages of the process (unused since kernel 2.6).
It's possible to convert pages to bytes or kilobytes. Example - if the pagesize of your system is 4kb:
$Sys::Statistics::Linux::Processes::PAGES_TO_BYTES = 0; # pages (default) $Sys::Statistics::Linux::Processes::PAGES_TO_BYTES = 4; # convert to kilobytes $Sys::Statistics::Linux::Processes::PAGES_TO_BYTES = 4096; # convert to bytes
Call new() to create a new object.
new()
my $lxs = Sys::Statistics::Linux::Processes->new;
It's possible to handoff an array reference with a PID list.
my $lxs = Sys::Statistics::Linux::Processes->new(pids => [ 1, 2, 3 ]);
Call init() to initialize the statistics.
init()
$lxs->init;
Call get() to get the statistics. get() returns the statistics as a hash reference.
get()
my $stat = $lxs->get;
No exports.
proc(5)
perldoc -f getpwuid
Please report all bugs to <jschulz.cpan(at)bloonix.de>.
Jonny Schulz <jschulz.cpan(at)bloonix.de>.
Copyright (c) 2006, 2007 by Jonny Schulz. All rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Sys::Statistics::Linux, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sys::Statistics::Linux
CPAN shell
perl -MCPAN -e shell install Sys::Statistics::Linux
For more information on module installation, please visit the detailed CPAN module installation guide.