home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 11 Util
/
11-Util.zip
/
monitr01.zip
/
readme.txt
< prev
Wrap
Text File
|
1999-02-22
|
14KB
|
315 lines
MonitorDaemon v0.1
by Nenad Milenkovic
What is this?
This is simple and effective resource monitoring add-on for
excelent monitoring utility called Pipe Monitor (part of
SysBar/2 package). It uses practicaly no CPU power (it sits
idle most of the time) and uses as much of RAM as it's needed
to open CMD.EXE shell to start the script (about 500k in
total, but most of it is idle and swaped away as soon as other
application requires RAM).
It's implemented as a backgound process (daemon) written in
Rexx that works as a supplement to monitoring utility from
SysBar/2 package. It uses Rexx interfaces provided by IBM's
Theseus/2 memory analysis program and Stefan Milcke's StHWMon
motherboard monitoring application.
It can be used as a template for adding more Rexx based
real-time reporting to SysBar/2's Pipe monitor.
What is SysBar/2?
SysBar/2 is a great set of small but powerfill utilites made
by Dmitry I. Platonoff with some help and cooperation from
others. Aside from "nothing but the look" digital clock and
nifty (and soon to be very powerfull) CD player it contains
two really usefull components: "Task Switcher" and "Pipe
Monitor".
The first one alows you one-click task switching, minimizing
and restoring windows and closing applications, but also
filtering of task-list and it's own content. It allows you to
directly access "system" menus of every application from it's
icon and it's very customizable in it's look and behaviour.
The second one (Pipe Monitor) is the one you need for Monitor
Daemon to work. It started as pipe listener (it would listen
for OS/2 named pipes, used for inter-process communication,
and displaying that traffic), but during the time author(s)
added more and more functionality, tranforming it into very
usefull monitoring application. It now has "integrated" CPU
load meter, free RAM monitor, IP traffic measures, etc. It can
also show free space on HDs, number and size of specified
files, battery status, number of new mails (POP3), system
uptime, number of processes, threads, etc.
However, one of it's most interesting features remains named
pipe listener. Writing to named pipe under OS/2 is very easy,
doing it from your own application or even command shell (OS/2
treats pipes like files in \PIPE direcectory). Authors of
web/ftp server could easily add monitoring and status
reporting with simple writing to pre-defined pipes in
SysBar/2's Pipe Monitor. By providing Rexx interfaces to their
programs they'll allow others to do the same.
That is exactly what Monitor Daemon does.
Do I need Monitor Daemon?
No. It's main purpose is to show you how easily you can bring
monitoring capabilities to your OS/2 Desktop for those
functions SysBar/2 has no native support and/or are not
supported (exposed) by OS/2 by default.
However, if you need excatly what it does, you can use it
"out-of-the-zip". It will (with the help of DLLs from other
programs) show current temperature of CPU (provided you have
supported motherboard) and _actual_ usage of swap file (how
much of prealocated swap space is _actually_ used). It can
help you prevent "burning" of your CPU or motherboard because
of fan mailfunction or OS/2 dying because of overflowed swap
space. It can also help you determine the optimal prealocated
swap size, the one that will be mostly used and rarely grow.
I use it in it's current form and works OK for me, but you can
add more functions to it, simmilar ones or something
completely different. It's good idea to add functions to it
rather than implementing your own monitoring services in order
to avoid overhead of starting multiple processes.
What do I need to run Monitor Daemon?
You will need one of two programs (or both of them) it uses
to see any benefit from Monitor Daemon. Those are:
Theseus/2 from IBM
Theseus/2 is OS/2 memory analisys program from IBM. It's
not supported ("for internal use unly"), but it
reportedly works OK and it's widely used (mostly by
programmers and system administrators) to determine
memory usage, memory leaks, RAM requirements for
system's typical usage patterns, etc. In order to access
low-level informations about other running processes it
requires support device driver to be installed (OS/2
protects it's processes one from each other). Once that
device driver (THESEUS2.SYS, which runs in privileged
mode) is active, you can use it's GUI to access all it's
functions. However, it has rather clumsy and
non-intiutive user interface, which is not sutable for
real-time monitoring of limited number of interesting
data. Good thing is that Theseus/2 (named after Greek
mythology hero who killed Minotaur and found his way out
of Labyrinth) is flexible and "open" - you can access
it's features from your own programs. In addition to
programmers library intended for compiled languages, it
offers Rexx interface, which I used from Monitor Daemon
in order to get information about how much swap space is
_really_ used in alocated swap file.
Theseus/2 v2.01m is available from Hobbes at the moment
of this writing, and should work with both Warp 3 and
Warp 4. I expect that IBM will provide simmilar utility
for upcoming Warp 5 (Aurora), but from what I heard,
this version doesn't work with it (Aurora has some
serious changes in kernel). Maybe it will work with GA
version.
Please reffer to instructions included with Theseus/2
for full installation, but note that you will only need
THESEUS2.SYS installed and THESEUS0.DLL available
somewhere in the LIBPATH in order to use Monitor Daemon.
StHWMon from Stefan Milcke
StHWMon is a monitoring utility that gathers data from
on-board chips that provide information about hardware
"health" and status. Most modern motherboards include
that functionality, and most of them include only
Windows versions of monitoring tools.
StHWMon is a PM (GUI) program that brings that functions
to OS/2 Desktop. It displays current temperatures of CPU
and motherboard, rotating speed of CPU and power supply
fans, current voltage of CPU (core and external),
motherboard and devices power supply.
StHWMon allows configuring of "correction values" for
all those data, althogh this is really needed only for
temperature monitors. This is required because StHWMon
is intended for "generic" use and not for any specific
motherboard or system. Utilities shipped with those
equipment usually have presetted those correction
values, so you must compare data shown by StHWMon (which
is actual data read from monitoring HW logic) with data
shown by those supplied utilities or shown by BIOS setup
utility. When you determine those correction values,
simply enter them into StHWMon configuration and it will
provide the for both PM (GUI) version and Rexx interface
(through INI).
You can run StHWMon all the time, but I beleive that CPU
temperature is the only one that really needs constant
attention. Therefore, I implemented only that in my
Daemon.
How to install it?
Simply: unzip and run. However, it will require some
additional work in order to achieve intended
functionality.
0. Prerequisites
Have SysBar/2, Theseus/2 and StHWMon properly installed.
Make sure you have rebooted in order for THESEUS2.SYS
device driver to be loaded.
1. Making Monitor Daemon work
The main issue is that Monitro Daemon needs access to
Rexx "support" DLLs from aforementioned applications in
order to work. Those DLLs must reside somewhere in
LIBPATH (settable in CONFIG.SYS). There are few ways of
doing that, like:
- adding Theseus and StHWMon directories to LIBPAH
- coping required DLLs to \MYDLLs directroy, or any
other place you keep those frequently needed
libraries (like EMX, VROBJ, etc.)
Personally, I copied THESEUS0.DLL to c:\MYDLLs, but run
MonitorD.CMD from the directory where I installed
StHWMon. This is because STHEALTH.DLL is not the only
DLL needed for StHWMon's Rexx interface -- that one
needs and accesses some others for itself. Since StHWMon
is updated rather frequently, it was bad idea to keep
those DLLs in two different places, resulting in
conflicts and problems. Theseus is not so frequently
updated, and has only one DLL for it's Rexx interface.
2. Configuring SysBar/2
You must configure SysBar/2's Pipe Monitor to expect,
accept and display data it receives from Monitor Daemon.
Configuring "CPU Temperature" cell:
- right-click with your mouse on Pipe Monitor and
select "Properties"
- go to "Cells" page of "Properties" notebook
- click on "New" button
- from "Type" drop-box select "pipe listener"
- make sure that "Enable cell" check-box is
activated
- in the "Name" entry-field enter: "CPU Temperature"
- select color for this cell from "Color" drop-box
- in "Prefix" entry-field enter: " t="
- in "Empty" entry-field enter: "ERROR"
- select "Expire timeout" check-box and enter 100 in
"seconds" number field
- in "Pipe" entry-field enter: "\PIPE\tempmon"
- go to "Programs" page of cell's "Properties"
notebook
- in "On mouse double-click" entry-field enter full
path of your StHWMon application, for example:
"D:\util\StHWMon\StHWMon.exe"
- make sure that "Enable" check-box is activated
- select "OK" button
- close "Properties" notebook
Configuring "Swap file size" cell:
- right-click with your mouse on Pipe Monitor and
select "Properties"
- go to "Cells" page of "Properties" notebook
- click on "New" button
- from "Type" drop-box select "pipe listener"
- make sure that "Enable cell" check-box is
activated
- in the "Name" entry-field enter: "Swap file size
(used)"
- select color for this cell from "Color" drop-box
- in "Prefix" entry-field enter: " Swp: "
- in "Empty" entry-field enter: "ERROR"
- select "Expire timeout" check-box and enter 100 in
"seconds" number field
- in "Pipe" entry-field enter: "\PIPE\swapmon"
- go to "Programs" page of cell's "Properties"
notebook
- in "On mouse double-click" entry-field enter full
path of your StHWMon application, for example:
"D:\util\theseus\THESEUS2.exe"
- make sure that "Enable" check-box is activated
- select "OK" button
- close "Properties" notebook
3. Making sure Monitor Daemon is started on system
startup
You can start Monitor Daemon from any startup folder or
STARTUP.CMD file. I have made "Program Object" for it
and put that object into XFolder's "Enhanced Startup"
folder. Once you are sure that Monitor Daemon works OK,
you can detach it and forget about it's existence.
4. Stopping Monitor Daemon
To stop Monitor Daemon just press Ctrl-C in it's window
or close the window itself. If you use some enhanced
shoutdown procedure, you can mark Monitor Daemon's task
as safe to kill without prompting first.
Conclusion
If this program or any other that it requires ruins your
computer, house or fammily, it's your own fault. Next
time don't use non-MS software on non-MS operating
system, especially not on dead operating systems such as
OS/2. Don't mess with zombies, daemons or any other
creature out of this world and practice safe hex.
But don't forget why are you using OS/2 at the first
place: because it works the way you want it to work.
Price
It's free, off course, but if you use it or like it, I
would appreciate if you let me know and tell me where
have you downloaded it from. My e-mail address is below.
Contact
If you have any questions, suggestions, donations or
marriage offerings you can reach me via e-mail:
nenad@fon.fon.bg.ac.yu.
Please use "Monitor Daemon" inside your subject line so
your message can be properly processed by my mail
filters and redirectors.
Good luck.
Nenad Milenkovic