BusyTasks

Plasma 4 Extensions

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

4
7 .9
Description:

This plasmoid uses several integrated backends to receive its input. Please read at least section REQUIREMENTS before installation.
Moreover, I'd be very grateful for any kind of feedback.


UPDATE
14.0: Holds the new configuration interface and supports synchronised plasmoid instances on multiple workspaces
14.1: Timeout for network notification messages.
14.2: Optional Irix mode, 64-bit support, many optimizations concerning the on-click-function and the panel mode
14.3: Additional configuration file for procps-ng
DOCUMENTATION:
Isn't everything some kind of process? At least on a computer it is. So let's keep an eye on them.
This plasmoid initially was a clumsy spin-off from Dmitry Makovey's tail plasmoid, but after I got more and more used to python and the program got more and more complex I cut everything superfluous and eventually separated it from tail.
This plasmoid uses several programs to get its input. The collected data is neither unique nor new, but the idea to clearly sum it up in one single program is. This task monitor displays up to four different tasks, each with different priority.

CPU intensive task:
Name and the percentage of the most CPU intensive task. The underlying top daemon is very efficient and does not really affect CPU, it is piped to shared memory.
Used backend: http://linux.die.net/man/1/top

Memory intensive task:
Name of the most memory intensive task, combined with a measure of size (absolute value or percentage to total available memory).
The implementation is the same as for the task above.

IO intensive task:
The task (or one of its threads) that currently triggers most IO.
The software package includes an own version of iotop that sends data via shared memory.
Original version: http://guichaz.free.fr/iotop/

NET intensive task:
The task that eats up your bandwidth.
You will be prompted for an administrator password when starting nethogs.
Like the one of iotop, this is a modified nethogs daemon that uses IPC.
Original version: http://nethogs.sourceforge.net

Additionally, the configurable update interval plays a crucial role in resource consumption. The smaller it is set, the more resources are needed.
There should be slightly less resource consumption (in terms of IO as well as overall) since release 8.0. Release 10.0 eventually cut out all IO.

The plasmoid is highly configurable to fit most desktop designs.
It supports highlighting of processes, either through a simple colour change after a certain limit of per cents or via colour gradient. For the statisticians among you, you can even log output. BusyTasks is only useful if it is always visible (e.g. residing on a panel) If you'd have got to minize windows or show the desktop to have a glance on it you could equally start the system monitor.

REQUIREMENTS: (and installation instructions)
The program was tested under several different distributions and is considered stable.(read below). Some of the used daemons may require additional libraries, however.
For full functionality, you need to meet the following requirements:
Installation of top in your command-line interpeter. This usually is the case on UNIX OSs.Proper value of $HOME variable in the shell environment. Verify with "echo $HOME".Python version 2.
On new systems version 3 may only be installed. Use the bash command "python -V" to check your version, additionally you may verify the installation of python2 by entering "python2 -V". Usually it's easy to get previous releases, they are not interferingThe System V IPC module for python.
If you don't have it yet, visit http://semanchuk.com/philip/sysv_ipc/ for download and install instructions.
Short manual:
Download file, go to the related directory and run "sudo python setup.py install". For systems linking python 3 per default, type "sudo python2 setup.py install". If it quits moaning about a python file install the package "python-dev(el)" first. Eventually restart KDELibraries for iotop and nethogs, whose scripts/binaries are integrated in the plasmoid package. There is a slight chance that one of them does not work due to missing libraries. In this rare case, there are basically two ways to proceed: Either install the standalone versions of iotop and nethogs and benefit from automatic dependency resolution or get the missing files/packages manually. BusyTasks usually reports the problem. (read section "troubleshooting")On 64-bit architectures you need to install the 32-bit libraries
TROUBLESHOOTING:
Oddly enough, inside a panel configuration was not possible in KDE prior to version 4.8. You had to drag it out, change settings there and redrag it into the panel.If you have a problem with resizing, activate the option "resize manually"On systems with linux kernel 3.1 (or above), iotop must be run in administration mode. Before activation, make sure there's a permissions error with standard rights. Be careful, arbitrarily switching between user and administration mode may cause an IPC permission error!If the iotop daemon does not start, some libraries may be missing. (see plasmoid output) Install them via KPackageKit, pacman, portage, etc.If none of the implemented nethogs daemons run, make sure you have the required libraries (libpcap). If it still doesn't work, download the sources (see links), compile it directly on your system, copy it to the BusyTasks directory and overwrite one of the existing nethogs0* daemons.If the name resolution of VirtualBox virtual machines does not work and you see some weird symbols, close the plasmoid, delete the current bashpipetosharedmemory75* binaries from the contents folder and use the old ones by removing the *.old endings. Additionally, they must be executable.On some systems the superuser frontend does only accept passwords entered in terminals. As a consequence the "use administrative password"-setting does not work, you've to manually enter your password each time. As a workaround, one may handle the daemons in the appropriate system runlevel.If the iotop and nethogs daemon do not start, be sure to have entered the correct password.
Iotop may dump a misleading curses error: "_curses.error: setupterm: could not find terminal"If you still don't get it to work, contact me here or via mail. You probably found a bug/compatibility problem.

BUGS:
Since release 12.5 the program should be nearly bug free.
Please report here or via mail (see plasmoid info) if your plasma-desktop crashes (so that I can at least remove the above claim), which usually happens when BusyTasks is removed from the desktop.
Known severe bugs:
None

Bugs occurring too rarely to be easily classified:
1. Nethogs transfer statistics obviously arbitrarily resets at low transfer rates (further examination/observation necessary)
2. VirtualBox name resolution does not work in rare cases (i.e. starting Windows XP before Unix, further examination/observation necessary)
3. The format of the data string provided by nethogs does not always meet the requirements for the plasmoid.

PERFORMANCE:
Python may be the wrong language to write such a tool in.
However, plasma-desktop does not seem to be affected by the plasmoid. On a thirteen years old (!) PIV 1.8GHz the most cpu-intensive plasmoid part is one of its daemons: iotop with 10% cpu load on average, which is quite good for a computer that takes 5-10 min to start up. Given the fact that iotop itself is written in python I even expect some space for improvement using a faster programming language.
Currently the process of (re)configuration is horribly slow.
On the one hand, bad code is responsible for the speed inefficiency, on the other hand it is my quest for user-convenience and upwards-compatibility that accounts for this behaviour. As jobs of configuration or organisation are usually done only twice per runtime (at startup and at termination) it's still acceptable.
I'll probably rewrite the whole program (including the iotop daemon) in C++ sometime (sometime...what a nice euphemism for never ;-)). For the moment reconfiguration performance remains the only real bug.
Additional note: It seems that there's slightly less CPU utilization since version 12.3 on my system. Could just be a coincidence, though.

TESTS: Program successfully tested on:
Kubuntu 9.10, 11.04, 11.10, 12.04 64-bit
Fedora 15
OpenSUSE 11.4
Arch 2011-08-19
Slackware 13.37
Gentoo 11.2
Mint 12
Sabayon 7

TRANSLATIONS:
If you want to contribute to the project, feel free to unpack the plasmoid-package and read the translation instructions in the contents folder.

Suggestions for further development:
*Implement colour gradient for the data transmission monitors.

I strongly recommend all who have installed a previous version to get an update!
Please comment, rate and criticise.
In the long run I'll have to create a website for documentation because the installation possibilities and configuration options are quite impressive and this description's already uncomfortably large. Due to a severe lack of time reading tooltips is all I suggest for now.
Last changelog:

7 years ago

1.0 Initial release
2.0 Keeping original top configuration, Panel integration
2.1 Minor ajdustment: support for multiple plasmoids
3.0 Highlighting a process passing a certain limit with an individual colour.
4.0 More configuration options (e.g. colour gradient)
4.1 Click on plasmoid opens a list of tasks ordered according to CPU usage.
5.0 Optional display of IO intensive task
5.1 Bugfixes (colour change for IO intensive task, process and rate mismatch)
5.2 Configuration option for on-click-behaviour, tooltips, whatsthis-tips
6.0 Code reorganisation, further configuration options, memory intensive task, file history log..
6.1 Optional horizontal arrangement of the tasks, saving the size
6.2 Optional font background to avoid unreadable design
7.0 Code cleanup and reorganisation, disassociation with tail, destructor, bugfixes, more configuration options, NET intensive task, etc.
7.1 Direct change of network interface supported.
8.0 Integration of own iotop and nethogs versions, IPC
9.0 Added icons and a panel mode
10.0 No tail involvement any more (only IPC), bugfixes
10.1 No blocking of plasma-desktop on startup with NET intensive task any more.
10.2 Correct behaviour on systems without user configuration for top.
10.3 Less resource consumption of nethogs, small fix concerning the configuration dialog
10.4 Added a logo
10.5 German and French translations
10.6 Further fixes of bugs (concerning units and logfile) that occurred during code reorganisation.
10.7 Bugfixes: kdesu as optional superuser trigger (for nethogs), updated library link for nethogs
10.8 Implemented several nethogs daemons compiled with different libraries/libary links, debug information
10.9 Small modification for systems with python version 3.
11.0 Easy network interface switching and advanced control over nethogs.
11.1 The last observed unchanged value for a task is displayed for an additional second if the plasmoid is updated once per second.
11.2 Integration of VirtualBox virtual machine name resolution.
11.3 Optional display of the processor that the monitored process is assigned to.
11.4 Improved error handling (at runtime and for plasmoidviewer).
11.5 Extirpation of crashes, performance optimisations, more configuration options
11.6 Iotop bug fix assuring that the task with most IO is chosen.
11.7 Support for newer kernels that deny access to IO statistics for regular users.
11.8 Improved configuration interface, bug fix concerning password prompt
11.9 Small changes to handle high update rate in panels.
12.0 Highlight change in memory amount between update intervals
12.1 Improved panel layout
12.2 Fixed VirtualBox name resolution
12.3 Major update including changes in iotop, nethogs and BusyTasks to enable advanced data collection.
12.4 Extended reset interval concerning the transfer statistics, separate colouring for sum and transfer rate.
12.5 Support for gigabyte values
12.6 Fixed iotop shared memory attachment
12.7 Bugfix concerning encoding of iotop string
12.8 Several minor optimisations (iotop, daemon organisation)
14.0 New internal configuration interface (compatibility upgrade), support for multiple workspaces
14.1 | 12.9 Timeout for network notification messages.
14.2 | 13.0 Optional Irix mode, 64-bit support, many optimizations concerning the on-click-function and the panel mode
14.3 Support for procps-ng (other configuration file)

C

unknownSpirit

8 years ago

Hi
I guess you are right, it's due to a linux kernel update concerning tasks' permissions.
http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.1
I hope I'll be able to upload a fix in a few hours' time.
Kind regards,

Report

9

rvs82

8 years ago

Thanks!

Report

C

unknownSpirit

8 years ago

Should work now for the new kernel too.
Please consider the fact that I can't test it as I don't have a system with such a kernel yet.
You should have regular glances at a system monitor of your choice to control if all daemons start and stop correctly!
Kind regards,

Report

C

unknownSpirit

8 years ago

I found a way to test it and discovered that it does not work yet.
Will upload a fix soon, stay tuned.
Kind regards,

Report

9

rvs82

8 years ago

Thanks, I was just about to post the error message I got :) I tried finding the bug myself, but didn't manage to. I'll await the final update.

Report

9

rvs82

8 years ago

I still get the same error message:

Quote:Iotop could not be started.
Information:
^[[?1049h^[[1;24r^[<B^[[m^[[41^[[?7h^[[?1l^[>Traceback (most recent call last):
File "/home/user/.kde4/share/apps/plasma/plasmoids/BusyTasks//contents/iotop-0.4.3/iotop.py", line 12, in <module>
main()
File "/home/user/.kde4/share/apps/plasma/plasmoids/BusyTasks/contents/iotop-0.4.3/iotop/ui.py", line 582, in main
main_loop()
File "/home/user/.kde4/share/apps/plasma/plasmoids/BusyTasks/contents/iotop-0.4.3/iotop/ui.py", line 572, in <lambda>
main_loop = lambda: run_iotop(options)
File "/home/user/.kde4/share/apps/plasma/plasmoids/BusyTasks/contents/iotop-0.4.3/iotop/ui.py", line 484, in run_iotop
return curses.wrapper(run_iotop_window, options)
File "/usr/lib/python2.7/curses/wrapper.py", line 49, in wrapper
curses.nocbreak()
_curses.error: nocbreak() returned ERR

Also, the script never reaches the point where it asks for my password. I'm running OpenSUSE 12.1 (32-bit).

Report

C

unknownSpirit

8 years ago

Another update, another try.
This time it works here at least.
Kind regards,

Report

chepioq

9 years ago

I have a big problem with your plasmoid.

When I install and lauch it, the command "top" don't work properly in console.

And when I remove the plasmoid with plasmapkg -r BusyTasks problem still persist.

But I saw where is the problem. BusyTasks install in /home/myUser/ a file named ".toprc" , and this file is the problem (this file IS NOT erase when I remove BusyTasks).

When I delete this file, top in console work well (but this file is recreate when I launch BusyTasks).

As you will not resolve this problem, I could not use your plasmoid...


Report

C

unknownSpirit

9 years ago

I think I found the reason, it's quite a small bug but with big consequences.
Thank you for pointing it out!
I'll upload a fix tomorrow, stay tuned.

Once again a global call for feedback:
As I already mentioned earlier in the comment section, feedback is important!
Although I keep testing the program extensively I cannot find all mistakes.
Please tell me if there's something wrong!

Report

chepioq

9 years ago

The latest version of BusyTasks (10.2) solve the problem,
Thank...

Report

C

unknownSpirit

9 years ago

"As you will not resolve this problem, I could not use your plasmoid..."
I can only solve the problems I know about.
Unfortunately people here are not very communicative.

"When I install and lauch it, the command "top" don't work properly in console."
What do you mean?
Does it quit with error or does it display something?
What top version do you use?
Do you have your own top configuration?

Report

chepioq

9 years ago

When I launch top in console, I have no error message but just that:
[dominique@localhost ~]$ top

Quote:%CPU COMMAND
1.0 X

Normally I must have :
Quote:Tasks: 173 total, 2 running, 171 sleeping, 0 stopped, 0 zombie
Cpu(s): 3.7%us, 3.2%sy, 0.0%ni, 93.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4058756k total, 1646580k used, 2412176k free, 60912k buffers
Swap: 2047996k total, 0k used, 2047996k free, 609784k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2052 dominiqu 20 0 800m 73m 22m R 3.0 1.9 2:34.62 npviewer.bin
1042 root 20 0 155m 49m 23m S 2.3 1.3 5:22.66 X
2040 dominiqu 20 0 299m 13m 8072 S 2.0 0.3 1:00.13 plugin-containe
1751 dominiqu 20 0 732m 5676 4320 S 1.7 0.1 0:49.12 conky
.................................................

I don't know what is the version of top, and I have no configuration for me.

Report

C

unknownSpirit

9 years ago

Hi chepioq
BusyTasks should not touch your top configuration by any means any more.

Report

C

unknownSpirit

9 years ago

That is, it does not touch the old file .toprc that the previous version left, either.
A short manual to restore your settings:

–Remove BusyTasks from your desktop.
–Remove the file .toprc in your home-directory if it is NOT your own one (e.g. you see something in top that you have not seen before the installation).
–Install the new version.
Kind regards,

Report

chepioq

9 years ago

Hi...
I test your last release, with icons, but that don't work for me.
With plasmoidviewer I have this error :

[dominique@localhost Téléchargements]$ plasmoidviewer BusyTasks
Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 47, in init
PythonAppletScript.importer.register_top_level(self.pluginName, str(self.applet().package().path()))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 17: ordinal not in range(128)
[dominique@localhost Téléchargements]$

Report

C

unknownSpirit

9 years ago

No problem, mistakes do happen.
I better have such kind of feedback than have nothing but a couple of arbitrarily bad votes.
Kind regards,

Report

chepioq

9 years ago

I have one comment.
I think you don't include the patch for re-size the plasmoid, because I have same issue that in my previous post "BusyTasks can't re-size"...

Report

C

unknownSpirit

9 years ago

Tested the 'BusyTasks - noresizing' version again.
Please make sure you use this one.
Should work for you.

Report

chepioq

9 years ago

Ok...
That work with Busytasks - noresize
Thank

Report

C

unknownSpirit

9 years ago

Even with the "noresizing" version?

Report

C

unknownSpirit

9 years ago

Hi chepioq, thanks for your feedback.
If I get things right, this is an encode problem of your package path string. Obviously a function does not support unicode characters. This accounts for the directory where you ran plasmoidviewer, but may not be true for your plasmoid package directory.
Does it have language specific symbols too (like french accents, for example)?

Report

chepioq

9 years ago

Yes I am french and I have some accents...

Report

C

unknownSpirit

9 years ago

In the plasmoid package path?
Can you print it here please?

Report

chepioq

9 years ago

Ok, path is /home/dominique/Téléchargements...
I change and place it in /home/dominique/Documents but I have other error message :

[dominique@localhost Documents]$ plasmoidviewer BusyTasks
Traceback (most recent call last):
File "/usr/share/kde4/apps/plasma_scriptengine_python/pyappletscript.py", line 59, in init
self.module = __import__(self.pluginName+'.'+relpath)
File "/usr/share/kde4/apps/plasma_scriptengine_python/plasma_importer.py", line 107, in load_module
exec code in mod.__dict__
File "/home/dominique/.kde/share/apps/plasma/plasmoids/BusyTasks/contents/code/main.py", line 18, in <module>
import sysv_ipc
ImportError: No module named sysv_ipc
[dominique@localhost Documents]$

Report

C

unknownSpirit

9 years ago

Ok, now we eventually caught the real problem. (The package path problem only occurred for plasmoidviewer):
You don't have the System V IPC module for python installed, which is necessary since release 9.0. See description for download link and installation!

Report

7 years ago

1.0 Initial release
2.0 Keeping original top configuration, Panel integration
2.1 Minor ajdustment: support for multiple plasmoids
3.0 Highlighting a process passing a certain limit with an individual colour.
4.0 More configuration options (e.g. colour gradient)
4.1 Click on plasmoid opens a list of tasks ordered according to CPU usage.
5.0 Optional display of IO intensive task
5.1 Bugfixes (colour change for IO intensive task, process and rate mismatch)
5.2 Configuration option for on-click-behaviour, tooltips, whatsthis-tips
6.0 Code reorganisation, further configuration options, memory intensive task, file history log..
6.1 Optional horizontal arrangement of the tasks, saving the size
6.2 Optional font background to avoid unreadable design
7.0 Code cleanup and reorganisation, disassociation with tail, destructor, bugfixes, more configuration options, NET intensive task, etc.
7.1 Direct change of network interface supported.
8.0 Integration of own iotop and nethogs versions, IPC
9.0 Added icons and a panel mode
10.0 No tail involvement any more (only IPC), bugfixes
10.1 No blocking of plasma-desktop on startup with NET intensive task any more.
10.2 Correct behaviour on systems without user configuration for top.
10.3 Less resource consumption of nethogs, small fix concerning the configuration dialog
10.4 Added a logo
10.5 German and French translations
10.6 Further fixes of bugs (concerning units and logfile) that occurred during code reorganisation.
10.7 Bugfixes: kdesu as optional superuser trigger (for nethogs), updated library link for nethogs
10.8 Implemented several nethogs daemons compiled with different libraries/libary links, debug information
10.9 Small modification for systems with python version 3.
11.0 Easy network interface switching and advanced control over nethogs.
11.1 The last observed unchanged value for a task is displayed for an additional second if the plasmoid is updated once per second.
11.2 Integration of VirtualBox virtual machine name resolution.
11.3 Optional display of the processor that the monitored process is assigned to.
11.4 Improved error handling (at runtime and for plasmoidviewer).
11.5 Extirpation of crashes, performance optimisations, more configuration options
11.6 Iotop bug fix assuring that the task with most IO is chosen.
11.7 Support for newer kernels that deny access to IO statistics for regular users.
11.8 Improved configuration interface, bug fix concerning password prompt
11.9 Small changes to handle high update rate in panels.
12.0 Highlight change in memory amount between update intervals
12.1 Improved panel layout
12.2 Fixed VirtualBox name resolution
12.3 Major update including changes in iotop, nethogs and BusyTasks to enable advanced data collection.
12.4 Extended reset interval concerning the transfer statistics, separate colouring for sum and transfer rate.
12.5 Support for gigabyte values
12.6 Fixed iotop shared memory attachment
12.7 Bugfix concerning encoding of iotop string
12.8 Several minor optimisations (iotop, daemon organisation)
14.0 New internal configuration interface (compatibility upgrade), support for multiple workspaces
14.1 | 12.9 Timeout for network notification messages.
14.2 | 13.0 Optional Irix mode, 64-bit support, many optimizations concerning the on-click-function and the panel mode
14.3 Support for procps-ng (other configuration file)

12345678910
323
product-maker wpatalas Oct 20 2013 9 excellent
product-maker deabru Aug 03 2013 9 excellent
product-maker msx Jul 06 2013 9 excellent
product-maker laloch Mar 23 2013 3 bad
product-maker freemanoid Mar 27 2012 9 excellent
product-maker gf0710020216 Feb 22 2012 9 excellent
product-maker redhatsky Feb 18 2012 9 excellent
product-maker rvs82 Dec 20 2011 9 excellent
product-maker imurzich Nov 14 2011 9 excellent
product-maker Artcor Oct 05 2011 9 excellent
product-maker dreamsoul Oct 01 2011 3 bad
product-maker akinms Sep 27 2011 9 excellent
product-maker pipapo Sep 05 2011 9 excellent
product-maker tritemius Sep 02 2011 9 excellent
product-maker Contrast Aug 17 2011 9 excellent
product-maker Pyruzan Aug 08 2011 9 excellent
product-maker seqizz Aug 04 2011 9 excellent
product-maker H00K Aug 04 2011 9 excellent
product-maker aTanCS Aug 04 2011 9 excellent
product-maker AlexeyK Aug 03 2011 9 excellent
product-maker SeaJey Aug 03 2011 9 excellent
product-maker pvt14 Jul 31 2011 9 excellent
product-maker lazx888 Jul 28 2011 9 excellent
product-maker cptG Jul 25 2011 9 excellent
product-maker vitoubien Jul 23 2011 3 bad
product-maker bosbes Jul 22 2011 9 excellent
product-maker Base: 4 x 5.0 Ratings
Be the first to comment
msx
Jul 06 2013
cosmoslx
Mar 21 2013
gf0710020216
Feb 22 2012
bosbes
Jul 22 2011
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
14.3 | 13.0
updated Sep 11 2013
added Jul 21 2011
downloads 24h
0
mediaviews 24h 0
pageviews 24h 10