S-Lang system monitor

Krzysztof Luks

02 Septembet 2001

Table of Contents

1: Overview

2: Technical info

3: Invoking

4: Usage

5: Configuration files

6: Problems

7: Thanks

8: Download

9: Changes

10: Copying



1: Overview

SLmon is a tool for monitoring system's performance. It displays results using nice and (hopefully) readable text-based UI. Currently monitored are:

2: Technical info

SLmon uses glibtop version >= 2 and libslang version >= 1.2.2 (this version however has a bug that makes it impossible to write a character in lower right corner, but otherwise it works okay).

Starting with 0.5.13 Glib library is needed.

3: Invoking

-v, --version
Display version and copying and exit

-h, --help
Display brief usage information

-f, --fs-unit=[kmg]
Specify filesystem usage unit, where: b=bytes, k=kbytes, m=mbytes, g=gbytes

-m, --mem-unit=[bkmg]
Specify memory usage unit, where: b=bytes, k=kbytes, m=mbytes, g=gbytes

-n, --net-unit=[bkmg]
Specify network traffic unit, where: b=bytes, k=kbytes, m=mbytes, g=gbytes

-d, --mode=[mpnh]
Start in mode 'M' where: m=main, p=process, n=network, h=histogram

-u, --update=<seconds>
Specify update interval in seconds

4: Usage

All modes:

q
Quit

m
Main mode.

p
Processes mode.

n
Network mode.

h
Histogram mode.

?
Help screen.

Main mode:

u
Change memory usage unit.

U
Change filesystems usage unit.

-
Increace gauge length.

=
Decreace gauge length.

up
Scroll fileststems up.

down
Scroll fileststems down.

Histogram mode:

h
Cycle through histogram modes.

-
Decrease horizontal size of the graph.

=
Increase horizontal size of the graph.

_
Decrease vertical size of the graph.

+
Increase vertical size of the graph.

Network mode:

u
Change network traffic unit.

n
Add new interface.

d
Delete existing interface.

up
Scroll list up.

down
Scroll list down.

Processes mode:

k
Send SIGTERM (15) to highlighted process. USE WITH CARE!

K
Send specified signal to highlighted process. USE WITH CARE!

a
Sort processes by pid descending.

A
Sort processes by pid ascending.

s
Sort processes by cpu percentage descending.

S
Sort processes by cpu percentage ascending.

d
Sort processes by memory percentage descending.

D
Sort processes by memory percentage ascending.

f
Sort processes by user name descending.

F
Sort processes by user name ascending.

up
Scroll list up.

down
Scroll list down.

page up
Scroll list up by 10.

page down
Scroll list down by 10.

5: Configuration files

SLmon looks for the configuration file in the following locations:

/etc/slmonrc

/usr/local/etc/slmonrc
if the previous one fails

$HOME/.slmonrc

Options can be specified in the form of pairs: <key> = <value>. Lines beginning with '#' are treated as comments (note: all leading whitespaces are stripped). All subsequent definitions of a certain option overwrite previous declarations except for the net_dev option.

Available options (more to come :)):

mode
Start certain mode: m=main, p=process, n=network, h=histogram.

mem_unit
Specify memory usage unit [bkm].

fs_unit
Specify filesystem usage unit [kmg].

net_unit
Specify network traffic unit [bkmg].

net_dev
Add a network interface to list of monitored interfaces.

update_time
Specify update interval in seconds.

6: Problems

  1. slmon uses too much cpu time in process mode

Please send all bugreports to m00se@iq.pl.

7: Thanks

The author wishes to thank following people for help in developing SLmon:

Martijn Pieterse and Antoine Nulle
authors of the wmmon.app.

Piotr 'xlizee' Kazmierczak
betatesting, suggestions and screenshot.

Marcin 'dombal' Dabrowski
betatesting.

Dan Bilik
patch fixing incorrect count of AMD K6 CPUs and some suggestions.

Kacper Pleszkun
betatesting, bugreports.

Alexander Reelsen
Debian Potato packages.

Alan Ford
Debian Woody packages.

Edward Betts
bugreports.

Gabor Z. Papp
bugreports.

Mario Vanoni
suggestions and lots of bugreports.

Tim Powers
RPM packages.

8: Download

SLmon home page http://slmon.sourceforge.net

Download:

Libgtop
ftp://ftp.gnome.org/pub/GNOME/stable/sources/libgtop/

S-Lang
ftp://space.mit.edu/pub/davis/slang/

9: Changes

0.5.13 - 24 06 2004
Updated to compile with latest libgtop, value overflows in network mode fixes, other cleanups (patches by Benoit Dejean). Glib is now required.

0.5.12 - 01 10 2002
Configure fixes (should compile cleanly on systems without GNOME). Use inet_ntoa() when inet_ntop() is unavailable. Documentation updates.

0.5.11 - 05 07 2002
Fixed detection of LibGTop2, some code cleanups.

0.5.10 - 03 07 2002
Added (experimental) display of network transmission speed per second. Fixed small display bug.

0.5.9 - 01 04 2002
Configurable update time, scrolling in network mode, fixed gnome-terminal transparency problems, fixes in configure.in.

0.5.8 - 29 11 2001
Updated help screen. Only interfaces which are up are displayed, added flags to information about interfaces.

0.5.7 - 28 11 2001
Bugfixes: incorrect URL in documentation, disapearing status lines, duplicate network interfaces.

0.5.6 - 12 11 2001
It is now possible to sort processes by pid, pcpu, pmem and username both ascending and descending. It's also possible to send an arbitrary signal to specified process.

0.5.5 - 05 11 2001
Added online help, fixed a bug where slmon would crash when there were no network interfaces specified. New keyboard mapping for changing modes.

0.5.4 - 25 10 2001
Bugfixes in network traffic display. Added sample slmonrc to distribution. New format of command line options.

0.5.3 - 23 10 2001
Updated documentation, new commandline switches.

0.5.2 - 22 10 2001
Added network interface monitoring mode and support for configuration files.

0.5.1 - 09 09 2001
%CPU and %MEM display works now, reintroduced long options, support for Linux /proc filesystem has been discontinued.

0.5.0 - 02 09 2001
Added ability to monitor running processes and mounted filesystems , switched from popt to getopt, keyboard handling was rewritten, minor bugfixes and code cleanups.

0.4.1 - 21 02 2001
Fixed several typos, added basic debian package support.

0.4.0 - 20 11 2000
One silly spelling mistake has been fixed (thanks to Tim Powers). There are no longer compilation errors when popt.h is not present. On gauge display changed %03d%% to %3d%% i.e. 004% will be displayed as 4%.

0.3.7 - 04 11 2000
SLmon can now use getopt instead of popt for parsing command line options. A bug in options parsing has been fixed. Texinfo documentation is no longer available.

0.3.6 - 02 11 2000
Bug in cpu counting have been fixed.

0.3.5 - 29 10 2000
Added posibility to compile slmon on Linux without libgtop. Documentation updates.

0.3.4 - 21 10 2000
CPU naming starts now from zero, on machines with one CPU only 'total cpu usage' is displayed. Fixed display error on machines with more than 1GB of memory.

0.3.3 - 12 10 2000
Minor bugfixes and cleanups, option to turn off bold on monochrome terminals.

0.3.2 - 08 10 2000
Improvements to configure script, incereased compile time configureability. Minor code cleanups.

0.3.1 - 18 09 2000
Major rewrite. Due to compatibility problems support for libproc has been discontiniued. SLmon now uses glibtop for gathering system specific information and should run on any UN*X system that has glibtop installed.

0.3.0 - 11 07 2000
Many changes: SLmon now uses libproc and popt, added commandline options and customizable colors (from commandline only for now). Added possibility to make command aliases. Added autoconf and automake support.

0.2.5 - 26 04 2000
Bugfix release. Slmon now looks much beter on monochrome terminals, also Makefile has been optimized.

0.2.4 - 15 04 2000
SLmon won't crash when it can't access /proc, changed the histogram mode screen layout a bit. It it now possible to draw histogram for specified processor or overall usage. Also number of logged in users is shown on the status line. Fixed a bug in RH patch.

0.2.3 - 10 04 2000
Added load average, OS and machine information.

0.2.2 - 06 04 2000
Fixed bug in CPU counting procedure and another one in free swap display. Added days to uptime display.

0.2.1 - 01 04 2000
Added memory load, all basic signals should be now handled properly.

0.2.0 - 26 03 2000
Gauge color scheme changed. Runtime mode switching works now.

0.1.9 - 20 03 2000
Added new graph mode - color gauge.

0.1.8 - 11 03 2000
Added SIGWINCH handling, hope it'll work :) also bottom status line has changed a bit.

0.1.7 - 27 02 2000
The program now correctly recognizes terminal size.

0.1.6 - 26 02 2000
Added graph, keyboard support, graph parameters are hardcoded.

0.1.5 - 25 02 2000
Multiple CPUs, status lines, date, time, uptime, hostname, processsor name.

0.1.0 - 24 02 2000
Initial version, one cpu.

10: Copying

Copyright (C) 2000, 2001, 2002 Krzysztof Luks <m00se@iq.pl>.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.