]> git.vpit.fr Git - perl/modules/Linux-SysInfo.git/blob - lib/Linux/SysInfo.pm
Importing Linux-SysInfo-0.01.tar.gz
[perl/modules/Linux-SysInfo.git] / lib / Linux / SysInfo.pm
1 package Linux::SysInfo;
2
3 use warnings;
4 use strict;
5
6 =head1 NAME
7
8 Linux::SysInfo - Perl interface to the sysinfo(2) Linux system call.
9
10 =head1 VERSION
11
12 Version 0.01
13
14 =cut
15
16 our $VERSION = '0.01';
17
18 =head1 SYNOPSIS
19
20     use Linux::SysInfo qw/sysinfo/;
21
22     my $si = sysinfo;
23     print "$_: $si->{$_}\n" for keys %$si;
24
25 =head1 DESCRIPTION
26
27 This module is a wrapper around the sysinfo(2) Linux system call. It gives information about the current uptime, load average, memory usage and processes running. Other systems have also this system call (e.g. Solaris), but in most cases the returned information is different.
28
29 =head1 EXPORT
30
31 The only function of this module, C<sysinfo>, and the constant C<LS_HAS_EXTENDED> are only exported on request.
32
33 =cut
34
35 use base qw/Exporter/;
36
37 our @EXPORT_OK = qw/sysinfo LS_HAS_EXTENDED/;
38
39 our %EXPORT_TAGS = ( 'all' => [ @EXPORT_OK ] );
40
41 require XSLoader;
42
43 XSLoader::load('Linux::SysInfo', $VERSION);
44
45 =head1 FUNCTIONS
46
47 =head2 C<sysinfo>
48
49 This function takes no argument. It returns undef on failure or a hash reference whose keys are the members name of the struct sysinfo on success :
50
51 =over 4
52
53 =item C<uptime>
54
55 Seconds elapsed since the system booted.
56
57 =item C<load1>, C<load5>, C<load15>
58
59 1, 5 and 15 minutes load average.
60
61 =item C<totalram>
62
63 Total usable main memory size.
64
65 =item C<freeram>
66
67 Available memory size.
68
69 =item C<sharedram>
70
71 Amount of shared memory.
72
73 =item C<bufferram>
74
75 Memory used by buffers.
76
77 =item C<totalswap>
78
79 Total swap space size.
80
81 =item C<freeswap>
82
83 Swap space stil available.
84
85 =item C<procs>
86
87 Number of current processes.
88
89 =back
90
91 Prior to Linux 2.3.23 on i386 and 2.3.48 on all other architectures, the memory sizes were given in bytes. Since then, the following members are also available and all the memory sizes are given as multiples of mem_unit bytes :
92
93 =over 4
94
95 =item C<totalhigh>
96
97 Total high memory size.
98
99 =item C<freehigh>
100
101 Available high memory size.
102
103 =item C<mem_unit>
104
105 Memory unit size in bytes.
106
107 =back
108
109 =head1 CONSTANTS
110
111 =head2 LS_HAS_EXTENDED
112
113 This constant is set to 1 if your kernel supports the three extended fields C<totalhigh>, C<freehigh> and C<mem_unit> ; and to 0 otherwise.
114
115 =head1 SEE ALSO
116
117 The C<sysinfo(2)> man page.
118
119 L<Sys::Info> : Gather information about your system.
120
121 L<Sys::CpuLoad> : Try several different methods to retrieve the load average.
122
123 L<BSD::getloadavg> : Wrapper to the C<getloadavg(3)> BSD system call.
124
125 =head1 AUTHOR
126
127 Vincent Pit, C<< <perl at profvince.com> >>
128
129 =head1 BUGS
130
131 Please report any bugs or feature requests to
132 C<bug-linux-sysinfo at rt.cpan.org>, or through the web interface at
133 L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Linux-SysInfo>.
134 I will be notified, and then you'll automatically be notified of progress on
135 your bug as I make changes.
136
137 =head1 SUPPORT
138
139 You can find documentation for this module with the perldoc command.
140
141     perldoc Linux::SysInfo
142
143 =head1 COPYRIGHT & LICENSE
144
145 Copyright 2007 Vincent Pit, all rights reserved.
146
147 This program is free software; you can redistribute it and/or modify it
148 under the same terms as Perl itself.
149
150 =cut
151
152 1; # End of Linux::SysInfo