Remote CPU monitoring webserver
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
rCPU Posts back to get CPU details every second Mar 1, 2016
LICENSE Update LICENSE Apr 17, 2015 Fix broken Markdown headings Apr 18, 2017


A minimal webserver for remote CPU monitoring (on Linux). Everything is embedded in the executable, so you just need to run the program. I'm planning to run it on my Raspberry Pi 2 to monitor the use of each core. Although it should run on other Linux machines too.

The program will automatically adjust the display according to the number of CPU cores.

UPDATE: this latest version (February 2016) changes the graph plotting library from Smoothie Charts to [Flot] ( in the hope of having better browser support.

NOTE: the code to display the core temperature is designed for the Raspberry Pi, it might not work on other machines.

How to build and run

On the Raspberry Pi (and other Debian based systems probaby)

You should be able to do this:

git clone
cd rCPU/rCPU/
sudo make install

...which will build everything and install it as a service (it will run at system start-up). The server will run on port 8111. That means you can view the graphs by visiting (you need to substitute your Raspberry Pi's IP address). You can remove it from your system like this (assuming you are still in the rCPU/rCPU/ directory):

sudo make uninstall

NOTE: the sudo before calling make above is important, since you're installing services.

Runing manually (or on different Linux versions)

Just do this:

git clone
cd rCPU/rCPU/
sudo ./rcpu 80

You might have a webserver already running on port 80, in which case you can specify a different port by passing a different parameter than 80 in the last line above.

Embedded content

The html and javascript files are embedded in the executable. Each resource file becomes a C header file. The makefile updates the header files as dependencies during the build process.


I am using the following javascript libraries:

Thanks to all involved with those projects.