Fetching contributors…
Cannot retrieve contributors at this time
171 lines (121 sloc) 5.75 KB

Copyright (c) 2000-2012 by Laurent Papier. This program is free software which I release under the GNU General Public License.


GKrellDnet is a monitoring system for client.


  • a Linux system with kernel support for Unix 98 (the wrapper will only work on Linux system but can be ported to other Unix system).
  • a working client.
  • GKrellM multi-monitor app (2.0 or better).
  • libmicrohttpd (optional) for the dnetw builtin web server.

GKrellDnet provides

  • a client wrapper that make possible to write monitoring applets. It's possible to monitor the client activity without a wrapper but not to monitor the crunch-o-meter. This is because the client doesn't print the crunch'o'meter if the client output is not a tty. This is why I have written this wrapper. The wrapper now has a builtin web server (version 0.15+). This make it easier to read current crunch-o-meter value from other apps.

  • a GKrellM plugin. This plugin features (see also 'Info' in plugin config.)

    • monitor input/output work units
    • monitor current contest
    • monitor the crunch-o-meter (support both relative and absolute style)
    • start/stop the dnet client on left/right mouse button click
    • user configurable text output
    • user configurable command to start on every packet completion (like playing a sound)


  • the plugin only support up to 10 CPU ;-)
  • on multi-proc. system, you will get inaccurate contest report if not all crunchers work on the same contest. Sorry but the output of the dnet client is not very readable in that case even for a computer ;-)
  • see TODO file.


First, compile both the dnet wrapper dnetw and the GKrellDnet plugin:

tar xvfz gkrelldnet-X.Y.tar.gz
cd gkrelldnet-X.Y

If you want to compile the builtin web server (requires libmicrohttpd)

tar xvfz gkrelldnet-X.Y.tar.gz
cd gkrelldnet-X.Y
sed -i "/98912660$/,+2 s/^#//" Makefile

To install the GKrellDnet plugin in ~/.gkrellm/plugins

make install

then you need to copy the wrapper dnetw somewhere in your path. I choose to copy it in the same directory as the client and add this directory in my path.

It is very important for the plugin to work, that BOTH dnetc and dnetw are in your path. Please check your $PATH variable. In fact, gkrellm need that both dnetc AND dnetw are in his $PATH variable.

NOTE: you don't need to be root to install this package.


First you need to setup your dnet client. Please see dnetc documentation. Now, you must use the wrapper to start the dnet client or you can left click in the GKrellM plugin (be sure that the dnetc executable is in the PATH of gkrellm, see install section).

Since version 0.15, dnetw includes a builtin web server. You can active it with --port|-p option. dnetw will then listen on port passed as argument. You can provide a format string parameter to the web server via the f cgi parameter.

IMPORTANT: the web server only listen on localhost IP for security reason.


starting the wrapper with the builtin web server listening on port 1234.

dnetw -q -p 1234

reading current values (default output)

curl http://localhost:1234/

reading current values (custom output)

curl 'http://localhost:1234/?f=$c:%20$i/$o%20-%20$p0/$p1'
ogr: 1/3 - 351.76Gn/85.30Gn

Possible formating

  • $i is the input work units
  • $o is the output work units
  • $c/$C is the current contest in lowercase/uppercase
  • $pn is the progress indicator value in current block/stub on CPU #n ($p <=> $p0)


dnetw only works if you DO NOT redirect the client output to a file. The client output MUST be stdout. So check your client configuration. The new absolute style crunch-o-meter is supported in v0.7, so you can set relative or absolute mode in the dnet client config. Currently, 'live-rate' is not supported. Wait for the next release.

If you want to redirect the dnet client output to a file you must use dnetw option -l.

dnetw -l dnet.log

this command will start and monitor the dnet client and redirect the client output to dnet.log.


this command will start and monitor the dnet client and print the client output on your terminal.

Now, it's possible to give the full dnetc command line to dnetw.

dnetw -c "dnetc -numcpu 2" -l dnet.log

this command will force the client to start 2 crunchers.

NOTE: you must enclose the command line with simple or double quotes. (read your shell man page for more info).


Starting from v0.8, the monitor file is no longer used. Starting from v0.9, the dnetw command line is no longer compatible with previous version. You need to remove the argument from your command line. If you start dnetw from the GKrellDnet plugin no change is need.

Open source make it possible

I have start writing a gkrellm plugin to monitor the dnetw output. But you can write your own monitoring applet (WindowMaker Dock, Gnome/KDE applets or epplets), I will only work on the wrapper dnetw and the gkrellm plugin.

Both the wrapper and the plugin seem stable on my system (Fedora Core 12). If you have problems, first check installation and usage section of this file. If you still have problems you can contact me.

Laurent Papier -

Thanks to

Bill Wilson for this really great monitoring tool.

Christoph Hohmann for the multi krell patch.