Author: spadkins
Date: Sat Jul 1 20:43:45 2006
New Revision: 6606
Modified:
p5ee/trunk/App-Context/lib/App/Context.pm
Log:
add get_sys_info() [Linux only]
Modified: p5ee/trunk/App-Context/lib/App/Context.pm
==============================================================================
--- p5ee/trunk/App-Context/lib/App/Context.pm (original)
+++ p5ee/trunk/App-Context/lib/App/Context.pm Sat Jul 1 20:43:45 2006
@@ -838,7 +838,8 @@
sub get_user_option {
&App::sub_entry if ($App::trace);
my ($self, $var) = @_;
- my $value = $self->so_get($var) || $self->{options}{$var};
+ my $value = $self->so_get($var);
+ $value = $self->{options}{$var} if (!defined $value);
&App::sub_exit($value) if ($App::trace);
return($value);
}
@@ -2519,5 +2520,64 @@
return($response);
}
+# /proc/meminfo
+# total: used: free: shared: buffers: cached:
+# Mem: 525942784 468914176 57028608 0 69124096 51593216
+# Swap: 1069268992 56954880 1012314112
+# MemTotal: 513616 kB
+# MemFree: 55692 kB
+# MemShared: 0 kB
+# Buffers: 67504 kB
+# Cached: 42328 kB
+# SwapCached: 8056 kB
+# Active: 171720 kB
+# ActiveAnon: 88224 kB
+# ActiveCache: 83496 kB
+# Inact_dirty: 22032 kB
+# Inact_laundry: 3120 kB
+# Inact_clean: 5572 kB
+# Inact_target: 40488 kB
+# HighTotal: 0 kB
+# HighFree: 0 kB
+# LowTotal: 513616 kB
+# LowFree: 55692 kB
+# SwapTotal: 1044208 kB
+# SwapFree: 988588 kB
+
+# /proc/loadavg
+# 0.02 0.12 0.15 1/138 30412
+
+# This only works on Linux (as far as I know)
+sub get_sys_info {
+ my ($self) = @_;
+ my $info = {};
+ # print "FILE: /proc/meminfo\n";
+ if (open(App::Context::FILE, "/proc/meminfo")) {
+ while (<App::Context::FILE>) {
+ if (/^([A-Za-z]+):\s*([0-9]+)/) {
+ $info->{lc($1)} = $2;
+ # print ">>> $1 = $2\n";
+ }
+ }
+ close(App::Context::FILE);
+ }
+ # print "FILE: /proc/loadavg\n";
+ if (open(App::Context::FILE, "/proc/loadavg")) {
+ while (<App::Context::FILE>) {
+ if
(/^([0-9.]+)\s+([0-9.]+)\s+([0-9.]+)\s+([0-9]+)\/([0-9]+)\s+([0-9]+)/) {
+ $info->{load} = $1;
+ $info->{load5} = $2;
+ $info->{load15} = $3;
+ $info->{runprocs} = $4;
+ $info->{nprocs} = $5;
+ $info->{unknown} = $6;
+ # print ">>> [$1][$2][$3][$4][$5][$6]\n";
+ }
+ }
+ close(App::Context::FILE);
+ }
+ return($info);
+}
+
1;