S-Lang system monitor

Krzysztof Luks

November 3, 2000

Table of Contents

1: Overview

2: Technical info

3: Invoking

4: Usage

5: Problems

6: Thanks

7: Download

8: Changes

9: 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:

  • CPU load (SMP is supported)
  • memory (including swap)
  • uptime, date and time
  • number of logged in users
  • 2: Technical info

    SLmon uses glibtop version >= 1.0.0 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). The popt library (version >= 1.1.3) is used for options parsing and aliasing.

    The popt library.

    SLmon uses popt library for options parsing and aliasing i.e. it is possible for users to make their own command line options by combining already existing options. Currently this mechanism is used to implement color themes.

    If slmon has been compiled with getopt instead popt long options (i.e. --rspace) and aliases won't be available.

    Aliases

    Aliases are defined in file $HOME/.slmonrc. Example file looks like follows:

    
         slmon alias --myoption -b --hist
    
    
    ...which is: program name, alias keyword, alias name, aliased options.

    For more details consult the popt manual.

    Color themes

    For list of predefined themes see file doc/slmonrc.

    3: Invoking

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

    -b, --byte
    Display memory in bytes

    -k, --kbyte
    Display memory in kilobytes

    -m, --mbyte
    Display memory in megabytes

    -B, --bold
    Turn bold on monochrome terminals on

    -G
    Start in gauge mode (default)

    -H
    Start in histogram mode

    --gauge_len=num
    Set the length of the gauge to num

    -E, --height=num
    Set display height to num lines

    --rspace=num
    Set the distance between horizontal edges of screen and beginning of graph to num

    --cspace=num
    Set the distance between vertical edges of screen and beginning of graph to num

    --color-primary=color
    Set primary color to color

    --color-secondary=color
    Set secondary color to color

    --color-background=color
    Set background color to color

    --color-status=color
    Set status-line color to color

    --color-status-background=color
    Set status-line background color to color

    --color-gradient1=color
    Set 1st gradient color to color

    --color-gradient2=color
    Set 2nd gradient color to color

    --color-gradient3=color
    Set 3rd gradient color to color

    -?, --help
    Show this help message

    --usage
    Display brief usage message

    4: Usage

    q
    Quit

    m
    Cycle through modes.

    u
    Change memory display unit.

    h
    Cycle through processors in histogram mode.

    -
    In histogram mode decrease distance between horizontal edges of screen and beginning of graph. In gauge mode decreace gauge length.

    =
    In histogram mode increase distance between horizontal edges of screen and beginning of graph. In gauge mode increace gauge length.

    _
    In histogram mode decrease distance between vertical edges of screen and beginning of graph.

    +
    In histogram mode increase distance between vertical edges of screen and beginning of graph.

    5: Problems

    Currently there are no known bugs in SLmon. Should you find any, please send a bugreport to m00se@iq.pl.

    6: 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.

    7: Download

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

    Download:

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

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

    Popt
    ftp://ftp.redhat.com/pub/redhat/code/popt/

    8: Changes

    0.1.0 - 24 02 2000
    Initial version, one cpu.

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

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

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

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

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

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

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

    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.3 - 10 04 2000
    Added load average, OS and machine information.

    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.5 - 26 04 2000
    Bugfix release. Slmon now looks much beter on monochrome terminals, also Makefile has been optimized.

    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.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.2 - 08 10 2000
    Improvements to configure script, incereased compile time configureability. Minor code cleanups.

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

    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.5 - 29 10 2000
    Added posibility to compile slmon on Linux without libgtop. Documentation updates.

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

    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.4.0 - 20 11 2000
    One silly spelling mistake have 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.4.1 - 20 02 2001
    Several typos have been fixed and files needed to build debian package have been added.

    9: Copying

    Copyright (C) 2000 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.