Boinc Monitor
KDE Plasma 4 Extensions
Score 64%
Description:

Boinc Monitor is a plasmoid written in python that allows you to monitor the activities of BOINC directly on your desktop. The applet shows the progress work of each workunit with reference to the project, to the name, to the percentage of the work done and to the time elapsed and remained. Also shows the number of workunits in pending, in cache and finished, and the last few lines of the BOINC log.

OPTIONS:
BOINC RPC host - The host of BOINC RPC gui. Default: 127.0.0.1
BOINC RPC port - The port number of BOINC RPC gui. Default: 31416
BOINC RPC password - The password of BOINC RPC gui. Default: Empty (Normally it needs for suspend/resume actions)
Preferred project - Your favorite project to display (name, credits, team). Default: None.
Update interval - The refresh interval of the plasmoid. Default: 1 minute.
Log lines number - The number of the log lines to display. Default: 5 lines.
Cut log line after - The number of characters after which the line of the log is cut. Default: 100 chars.
Show only active tasks - Hide new and finished tasks from the list. Default: False.

ICONS LEGEND:
R = Running - [can be suspended]
S = Suspended - [can be resumed]
N = New - [can be suspended]
W = Waiting To Run - [can be suspended]
F = Finished (Ready To Report) - [no Action]
A = Aborted (Ready To Report) - [no Action]
P = Opens window to show properties of the task

IMPORTANT:
For a perfect view of the plasmoid the system must have the "Verdana" font installed.

AVAILABLE LANGUAGES:
English
Italian
German (thanks to Thomas Gorzka)
Spanish (thanks to Joaquín Ferrero)
Russian (thanks to Sergey Basalaev)

FOR TRANSLATORS:
If you want translate Boinc Monitor in your language, edit boinc-monitor.pot in docs folder, add the translation in msgstr "" or use Poedit and send me the file to email at m4x1m[at]inwind.it

CREDITS:
BOINC logo - http://boinc.berkeley.edu
Cubic icons - Uncredited
Alphabet icons by Supratim Nayak - http://www.iconarchive.com/show/multipurpose-alphabet-icons-by-hydrattz.html
Play/Stop icons by Oxygen Team - http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org.html
Update/Abort icons by VisualPharm - http://www.iconarchive.com/show/must-have-icons-by-visualpharm.html

-

That's all!

If you like this plasmoid please leave a comment!
Last changelog:

3 years ago

v3.0:
- Added a redundant control to prevent plasma crash when user starts or stops boinc.

v2.9:
- Added new icon for abort state.

v2.8:
- Fixed a bug related to the abort command in the task properties.

v2.7:
- Improved spanish translation.

v2.6:
- Added Russian translation (Thanks to Sergey Basalaev for this translation and some hints).
- Improved language localization management.
- Fixed some unicode strings errors.

v2.5:
- Keep enabled the host and port settings also if the connection was already established for allow users to have multiple instances of the plasmoid.
- Improved checks for protected remote connection.
- Improved spanish translation.

v2.4:
- Changed the method to get if BOINC is running, for more compatibility with the various distributions. If the client name for the your distributions is different from boinc or boinc_client, please notify me, so I will provide to add.

v2.3:
- Added option to hide the New/Finished tasks from the list.
- Added buttons in the properties of the projects for receive update, suspend/resume, fetch/not fetch more works for the current project.
- The urls in the properties of the projects are now clickable for opens website.
- Added buttons in the properties of the task for suspend/resume and abort the current task.
- The names of the tasks that are longer than 40 characters will be reduced with a [...] in the middle.
- Removed the unused help button in the dialogs and added the help hints for the configuration options.
- Optimized code and the graphics views.
- Fixed some others bugs.

v2.2:
- Added window dialog for projects properties.
- Fixed some others bugs.

v2.1:
- Completely rewritten. Now the plasmoid uses RPC gui. See the README.txt file (Thanks to Joaquí­n Ferrero for his support and suggestions).

v2.0:
- Auto Expand "Elapsed" field to print a result that show more than 24 hours.

v1.9:
- Added option to set timeout wait after a suspend/resume call (a too low value might not give time to PC to remove/create the process ids).
- Show more informations when resuming a workunit.
- Fixed minor bugs.

v1.8:
- Added the ability to suspend/resume process.
- Fixed an issue at the initialization of the script.
- Fixed minor bugs.

v1.7:
- Added multilanguage locale.
- Added an extra check to the file boinc-monitor in /etc/sudoers.d/

v1.6:
- Added a second command to check if BOINC is running (this is a workaround for systemd, thanks to Thomas Gorzka).
- Fixed minor bugs.

v1.5:
- No more write the options in a an external file, but use the internal system of plasma for read/write the configuration.

v1.4:
- Perfected the method of recognition of the BOINC user.
- Fixed minor bugs.
- Fixed minor graphics bugs.

v1.3:
- Fixed issue related at initialize of plasmoid for not packaging version of BOINC.
- Fixed issue related the choose of preferred project.
- Fixed minor bugs introduced with the previously version.

v1.2:
- Fixed bug related the preferred project chosen that no longer exists.
- Fixed little bug if the user choose a project that is not in any team.
- Added more controls to prevent errors.

v1.1:
- Changed the way to get the slot used by process (see README.txt in docs folder).
- Added PID column to the working list.
- Fixed minor graphics bugs.

v1.0:
- First script release.

sbasalaev

4 years ago

Hello. Applet looks great! However on my Ubuntu 12.10 it fails to start with the following trace:

Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 75, in init
self.pyapplet.init()
File "/home/sbasalaev/.kde/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main.py", line 113, in init
self.settings["projects"] = str(gc.readEntry("projects", i18n("None")).toString())
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

Report

C

m4x1m

4 years ago

It's strange. There aren't ascii chars in this line.

self.settings["projects"] = str(gc.readEntry("projects", i18n("None")).toString())

Could you change this line with this below and test for me?

self.settings["projects"] = str(gc.readEntry("projects", i18n("None")).toString().toUtf8())

Thanks!

Report

C

m4x1m

4 years ago

Sorry, I forgot!

The lines are in position 113 and 800.

Report

sbasalaev

4 years ago

Changed lines and now it is working, thanks!

Report

C

m4x1m

4 years ago

@H00K

If you manage to get news about this, will you do me a big favor, in the meantime, I'll add an elif as workaround!

Report

H00K

4 years ago

Below is a diff to make it work on Gentoo (or any other OpenRC-based distro).

*** .kde4/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main_old.py 2013-02-23 21:40:29.147592362 +0100
--- .kde4/share/apps/plasma/plasmoids/boinc-monitor/contents/code/main.py 2013-02-23 21:41:34.437722422 +0100
*************** if os.popen("which boinc").read().find("
*** 26,31 ****
--- 26,32 ----
coreClientRuns = False
if coreClientInstalled == True:
if os.popen("/etc/init.d/boinc-client status 2>/dev/null").read().find("running") != -1: coreClientRuns = True
+ elif os.popen("/etc/init.d/boinc status 2>/dev/null").read().find("started") != -1: coreClientRuns = True
elif os.popen("systemctl status boinc 2>/dev/null").read().find("running") != -1: coreClientRuns = True

class BoundCaller(plasmascript.Applet):

Report

C

m4x1m

4 years ago

Thanks! But perhaps to prevent recurrence of the problem for other distributions, I think it would be better to do it this way:

coreClientRuns = False
if coreClientInstalled == True:
+ if os.popen("pidof boinc") != "": coreClientRuns = True
- if os.popen("/etc/init.d/boinc-client status 2>/dev/null").read().find("running") != -1: coreClientRuns = True
- elif os.popen("systemctl status boinc 2>/dev/null").read().find("running") != -1: coreClientRuns = True

class BoundCaller(plasmascript.Applet):

If works for you I'll make this change in next release!

Report

H00K

4 years ago

In my case the BOINC bin is called "boinc_client", so the `pidof boinc` if statement returns False.

But the general idea of testing the existance of a running instance with pidof IMHO sounds like a surer test, yes :)

Report

C

m4x1m

4 years ago

Are you sure?

Because, to check if BOINC is installed, the script call "which boinc" not "which boinc_client".

Report

H00K

4 years ago

I’m quite sure, yes.

`cat /etc/conf.d/boinc` produces:

# Config file for /etc/init.d/boinc
[…]
# Location of the boinc command line binary
BOINCBIN="/usr/bin/boinc_client"

Report

C

m4x1m

4 years ago

Ok. Then I'll add two "pidof" condition. But I don't understand why the first condition (check if BOINC is installed) is true in your system "which boinc". Sorry is just to understand!

Report

H00K

4 years ago

To be honest, I don’t get it either — I have both boinc and boinc_client in /usr/bin and what’s even more interesting, both are part of the package, have the same timestamp and are identical binaries to each other.

I’ve taken a quick glance at the ebuild and patches and I don’t see why there is need for such duplication.

If there is no other distro using it this way, I can file a bug in Gentoo.

Report

gorzka

4 years ago

you bring out a new version without me ;-)

Report

C

m4x1m

4 years ago

Eh eh, is a little graphic change, nothing important

Report

gorzka

5 years ago

Ich krieg noch ne Macke.

You can write me under Skype to gorzkathomas

Report

C

m4x1m

5 years ago

@gorzka

This are the two commands involved to get that info:

ps -o c,f,pid,pmem,cmd -u boinc | awk '$1 > 20 && $2 == 0 {print $0}'

you should get an output like this:
41 0 1358 1.1 ../../projects/setiathome.berkeley.edu/setiathome-5.28.x86_64-pc-linux-gnu

if no output, boinc and 20 are the variables taken from configuration, try to play with 20 maybe go down to 10

sudo -u boinc pwdx 1358

you should get an output like this:
1358: /var/lib/boinc-client/slots/0

1358 is the process id and is taken from previous command at third column

this two commands are the only way to get that info.

Report

gorzka

5 years ago

ps -o c,f,pid,pmem,cmd -u boinc | awk '$1 > 20 && $2 == 0 {print $0}'

99 0 4915 0.5 ../../projects/setiathome.berkeley.edu/astropulse_6.03_x86_64-pc-linux-gnu

-------------------------------------------------------------------------------------------
sudo -u boinc pwdx 4915

4915: /var/lib/boinc/slots/0

------------------------------------------------------------------------------------------

CPU limit load = 10%

The plasmoid say "21-Nov-2012 12:17:19 [--] System clock was turned backwarts; clearing timeouts"

the local time is 11:34:19

If you want you can write me via icq

Report

C

m4x1m

5 years ago

Sorry, I don't use icq, Skype?

The outputs are correct, however, is strange. but I notice that in a previous post your configuration was

BOINC folder path: / var / lib / boinc-client
BOINC user name: boinc

now I see 4915: "/ var / lib / boinc /" slots / 0

this thing gives me to think "boinc" or "boinc-client"?

about the system clock I do not think it is important to

Report

gorzka

5 years ago

BOINC folder path: /var/lib/boinc/
BOINC user name: thomas
Preferred project: seti@home
Update interval: 1 minute
log line numbers: 1 line
log chars cut: 95 chars
CPU load limit: 10%

Report

C

m4x1m

5 years ago

Ok. In the previous commands replace boinc with thomas and in the file / etc / sudoers.d / boinc-client, boinc make sure to be replaced by thomas

The sudo command don't must ask you for password.

From my INSTRUCTIONS:
To get plasmoid that works well is necessary to copy the file boinc-monitor from the docs folder to the folder /etc/sudoers.d/ (need root privileges).

If your BOINC user is not "boinc", please edit the file and replace it with your BOINC username.

I think the problem is this!

Report

C

m4x1m

5 years ago

It's important that the user who starts boinc-client is the same owner of the folder /var/lib/boinc

If you start boinc-client as user named boinc the correct value for username in configuration is "boinc" but the owner of /var/lib/boinc must be the same user

Report

gorzka

5 years ago

I have installed BOINC in /varch/lib/boinc-client and the I started the boinc but the Plasmoid saye "Boinc isn't running".

The Label "Cached", "Pending" and "Finished" is green and I can see "Thomas Gorzka: 776 credits at SETI@home in no team".

Pid, Process, Progress, Elapsed and Ram doesn' work.

settings:

BOINC folder path: /var/lib/boinc-client
BOINC user name: boinc
Preffered project: SETI@home
....

What is wrong? Than you for help

Report

C

m4x1m

5 years ago

The script uses this command to recognize if boinc is started or not...

/etc/init.d/boinc-client status

Please, launch the above command in terminal and post here the output.

Report

gorzka

5 years ago

I have compiled boinc and I copied boinc,boinccmd and boincmgr in a directory, and Chakra use the systemd.

But I have copied the boinc-client to init.d. When I run boinc-client:

./boinc-client start
Cannot find an executable for the BOINC client. [FAILED]

Report

C

m4x1m

5 years ago

Ok. If you use:

service boinc-client status

that includes checking for systemd the output should be similar:

* Status of BOINC core client: running
* Scheduling of BOINC core client: 974
pid 974's current scheduling policy: SCHED_OTHER
pid 974's current scheduling priority: 0
* OOM killer status for BOINC core client:
PID 974: adj 0
, score
1

If so, I'll add a second command to check if boinc is running and I'll post a new version. if not, I will invent something!

Report

3 years ago

v3.0:
- Added a redundant control to prevent plasma crash when user starts or stops boinc.

v2.9:
- Added new icon for abort state.

v2.8:
- Fixed a bug related to the abort command in the task properties.

v2.7:
- Improved spanish translation.

v2.6:
- Added Russian translation (Thanks to Sergey Basalaev for this translation and some hints).
- Improved language localization management.
- Fixed some unicode strings errors.

v2.5:
- Keep enabled the host and port settings also if the connection was already established for allow users to have multiple instances of the plasmoid.
- Improved checks for protected remote connection.
- Improved spanish translation.

v2.4:
- Changed the method to get if BOINC is running, for more compatibility with the various distributions. If the client name for the your distributions is different from boinc or boinc_client, please notify me, so I will provide to add.

v2.3:
- Added option to hide the New/Finished tasks from the list.
- Added buttons in the properties of the projects for receive update, suspend/resume, fetch/not fetch more works for the current project.
- The urls in the properties of the projects are now clickable for opens website.
- Added buttons in the properties of the task for suspend/resume and abort the current task.
- The names of the tasks that are longer than 40 characters will be reduced with a [...] in the middle.
- Removed the unused help button in the dialogs and added the help hints for the configuration options.
- Optimized code and the graphics views.
- Fixed some others bugs.

v2.2:
- Added window dialog for projects properties.
- Fixed some others bugs.

v2.1:
- Completely rewritten. Now the plasmoid uses RPC gui. See the README.txt file (Thanks to Joaquí­n Ferrero for his support and suggestions).

v2.0:
- Auto Expand "Elapsed" field to print a result that show more than 24 hours.

v1.9:
- Added option to set timeout wait after a suspend/resume call (a too low value might not give time to PC to remove/create the process ids).
- Show more informations when resuming a workunit.
- Fixed minor bugs.

v1.8:
- Added the ability to suspend/resume process.
- Fixed an issue at the initialization of the script.
- Fixed minor bugs.

v1.7:
- Added multilanguage locale.
- Added an extra check to the file boinc-monitor in /etc/sudoers.d/

v1.6:
- Added a second command to check if BOINC is running (this is a workaround for systemd, thanks to Thomas Gorzka).
- Fixed minor bugs.

v1.5:
- No more write the options in a an external file, but use the internal system of plasma for read/write the configuration.

v1.4:
- Perfected the method of recognition of the BOINC user.
- Fixed minor bugs.
- Fixed minor graphics bugs.

v1.3:
- Fixed issue related at initialize of plasmoid for not packaging version of BOINC.
- Fixed issue related the choose of preferred project.
- Fixed minor bugs introduced with the previously version.

v1.2:
- Fixed bug related the preferred project chosen that no longer exists.
- Fixed little bug if the user choose a project that is not in any team.
- Added more controls to prevent errors.

v1.1:
- Changed the way to get the slot used by process (see README.txt in docs folder).
- Added PID column to the working list.
- Fixed minor graphics bugs.

v1.0:
- First script release.

File (click to download) Version Description Filetype Packagetype License Downloads Date Filesize OCS-Install DL
Details
version
3.0
updated Dec 07 2014
added Oct 10 2012
downloads today
0
page views today 5