GTK Folding@home Client Monitor for Linux

SourceForge Logo


GFHCM is a collection of GTK/GLIB programs that can be used to log and display information about the current status of the Stanford University Folding@home Project's Linux client program on local and remote machines, and the contributions of both your individual id and all teams you are associated with.  It is simular to the GKrellFah2 plugin for GkrellM Gtk Monitors in that it has all the same capabilities, only providing those capabilities without the prerequisite of GkrellM. 

In general these capabilities allow you to start the FAH client when Linux boots and stop it via a command interface.  Collects and parse the team and individual statistics webpages to show the workunit and point contributions from your FAH userid and the teams your are a part of.   Monitors one or more active FAH clients to determine its point value, runtime, progress, estimated completion time, molecule and project ids, cpu utilization being consumed and several other data points.  Log the completion of each workunit, saving key compiling key work unit metrics.  Finally it can control the actual amount of cpu utilization used by the FAH client using an internal algorithm known as "fahLimit"; a method to control how much of the the time allocated to a process is actually used, this may help control the temperature of CPUs.  

The GFHCM package includes three programs, one standalone named GFHCM, and two as client/server set named GFHCMC and GFHCMD respectively.  GFHCM is capable of monitoring FAH clients on your local machine only.   While GFHCMC and GFHCMD are designed to both co-exist and be separated.   In particular, GFHCMD is implemented as a standard Linux daemon with a complete initd service script allowing it maximum integration with Fedora based systems.  GFHCMC then connects to local and remote GFHCMD daemons using socket based IP communications on ports 2575 and 2576.  There is no design limit on the number of remote daemons the client will support, nor is there a design limit on the number of clients a daemon will support. 

It is assumed that most desktop users will choose the GFHCM program to monitor workunits on their local desktop.  Especially, if some other mechanism is being used to autostart the FAH clients.  The only downside here is that the GFHCM program provides its monitor and control capabilities only when it is running; this requires the user to actually signon to their Linux desktop, etc.  

Many users of the GkrellFah2 package reported a need to monitor and control more than x number of Linux machines.  GFHCMC/GFHCMD permits an unlimited mix to be monitored and controlled.  GFHCMD, as a daemon, can be installed on every Linux machine running one or more FAH clients.  Here it will control, log, and collect status
information to be transmitted back to one or more GFHCMC display programs.  

Author: James Scott, Jr.
GFHCM is licensed under the GPL version 2.


  • Spec for Notification Area Icons.
  • Unlimited monitoring and control of multiple FAH clients on a single machine, assuming one FAH client per CPU core.
  • Unlimited monitoring and control of multiple machines (locations) running the GFHCMD daemon.
  • Logging of completed work units.
  • Autostart and restart of FAH Clients.
  • FahLimit control of FAH clients.
  • Individual and Team statistics are parsed from Stanford's web pages.
  • Detailed metrics on each workunit.

GFHCM screenshot

notification icons

gfhcm prefs


GFHCMC/GFHCMD  screenshot



    GFHCM, GFHCMC - Gtk2/Glib-2.6+ runtime support, and GConf is also required.

    GFHCMD - Glib-2.6+  {note 2.4 may actually work, was not tested though}
    All modules require WGET any version, to support downloading statistic files                  

Distribution Method

    Source RPM    gfhcm-{version}-{release}.src.rpm
    Binary RPM    gfhcm-{version}-{release}.i686.rpm
    Source tar    gfhcm-{version}.tar.bz2

    Source RPM    gfhcmc-{version}-{release}.src.rpm
    Binary RPM    gfhcmc-{version}-{release}.i686.rpm
    Source tar    gfhcmc-{version}.tar.bz2

    Source RPM    gfhcmd-{version}-{release}.src.rpm
    Binary RPM    gfhcmd-{version}-{release}.i686.rpm
    Source tar    gfhcmd-{version}.tar.bz2

Install Info

Installing FAH Client
- create directory structure
$ mkdir /opt/fah/Grids_01
$ sudo chown -R userid:groupid /opt/fah

- download client from - ""
$ cp /tmp/FAH504-Linux.exe /opt/fah/Grids_01
$ chmod 775 /opt/fah/Grids_01/FAH504-Linux.exe

- configure the FAH Client
** this step will cause you to specify your F@H userid
choose a name carefully, you cannot change it later.
$ cd /opt/fah/Grids_01
$ /opt/fah/Grids_01/FAH504-Linux.exe -configonly
answer prompts
use your team number or "37988" FedoraFolders

* when configuration is done it may go right into folding
you can ctrl-c out and start the job as a background job
manually now. BE SURE TO ALWAYS USE THE FULL PATH on the exefile
starting from the RIGHT directory.

- manual start commands (please let gfhcm[d] do it automatically)
$ cd /opt/fah/Grids_01
$ /opt/fah/Grids_01/FAH504-Linux.exe -advmethod &>/dev/null &

Installing GFHCM or GFHCMC
- Install via RPM { first install, or to update existing}
$ rpm -ivh gfhcm-{version}.i386.rpm
$ rpm -Uvh gfhcm-{release}.i386.rpm

- Install using sources
unpack and compile the source package (user programs)
$ tar jxf gfhcm-{release}.tar.bz2
$ cd gfhcm-{release}
$ ./configure
$ make clean all
$ sudo make install

* note: Creates a gnome menu panel item in
Application->System Tools->gfhcm

- configure the gfhcm program
$ gfhcm --help
$ gfhcm &
A. Select -Preferences- tab
- click ADD button
- double-click field to change values
- click the ENABLE checkbox,
B. Enable all monitors - in the Global Settings - area
C. Location icons should be present or populate the location sidebar

- troubleshooting tips.
* is the correct client name in the preferences field?
- default is "./FAH502-Linux.exe"
* if started manually
- did you cd to correct directory, and use full path again with exe?
* is the "enable monitors" checkbox clicked in the Global section of prefs?
- this checkbox actually controls whether the correctly configured
locations run or not. It must be checked.
* note: log files will populate after this monitor records one completed
work unit.

Installing GFHCMD
1. Unpack the distribution file
or install the rpm "$ rpm -ivh gfhcmd-{version}.i686.rpm "
and do steps 3,4, and 6.
for step 3 "cd /etc", step 4 "cd /etc/init.d/" first
2. $ cd gfhcmd/src
3. $ vim gfhcmd.conf - set to correct values
- change 'path_string=/opt/fah/Grids_01;/opt/fah/Grids_02;'
- change 'mp_count=2'
- change 'start_cmd=FAH504-Linux.exe'
- change any other values as needed, then save
4. $ vim gfhcmd.initd
- change 'username=James.Scott' to your real username
5. Compile and Install the program, scripts, and configs
$ make clean all
$ sudo make install
6. Test that is starts correctly
$ sudo /sbin/service gfhcmd start
$ sudo /sbin/service gfhcmd reload
- expected output in /var/log/messages

gfhcmd[9508]: gfhcmd-0.0.x startup successful - using config(/etc/gfhcmd.conf)
gfhcmd[9508]: Monitors are Enabled
gfhcmd[9508]: Monitor_1-{Progress=0.0, CPU=0.0, Points=165.0, State=1110, Status=Folding!}
gfhcmd[9508]: Monitor_2-{Progress=0.0, CPU=0.0, Points=459.0, State=1110, Status=Folding!}
gfhcmd[9508]: Reload config requested (/etc/gfhcmd.conf)

7. Cleanup
- remove any rc.local command you had in place to auto start the fah client

8. This daemon will start/stop/restart the clients as needed while your system is running

Thank you for Folding...

Known Bugs

 NONE: ...

Reporting Bugs

 Please report bugs and feature requests to
 "James Scott Jr"<>
 or use the HELP Forums on SourceForge for this project.


 Help Forum on SourceForge


This site  

Last updated 12-12-2006