blahps

Note: I have realised recently that the current version of blahps has some strange problems. I plan on fixing these soon. Basically it is my opinion that the GTK Tree classes are completely broken and behave inconsistently, making it practically impossible to make a custom model that works - this is probably why there are no actual examples of working custom tree models on the internet. I also am going to give up and just rewrite it to use the default tree model.
So, for now blahps is broken but still usable - it just fails to update sometimes and you can make it do so by hitting enter in the filter box.

(screenshots are further down)

blahps is a small GUI program for viewing the processes running on your computer. Unlike other 'process managers' or 'task managers' for *nix though, it aims to actually be useful for something. For example, if you are trying to catch a very short intermittent process you can start blahps and then wait for the process to appear. Depending on the refresh period, blahps is likely to catch the process before it dies and then even after it dies it will still allow you to see the process in it's dead processes pane.

With blahps you can FILTER your process listing or sort by reasonable columns like 'age' to show recent processes first.

blahps has a Flat view mode and a tree view mode for those times when you want to see the parent/child relationship.

blahps tries hard not to disrupt what you have selected just because it has updated part of it's display. For example if you have pre-hilighted a process which you are getting ready to kill. You wont lose the selection and have to select it again just because the GUI refreshed and added some rows.

blahps allows you to select and kill MULTIPLE processes at once.

blahps has a quick access toolbar for selecting the signal you want to send.

For the tree view mode, blahps has an EXPAND filter so you can choose NOT to expand certain nodes (such as a java process which has 40 threads).

blahps Allows you to view the whole command line of a process without scrolling, by wrapping it.

Coming soon - the ability to copy data out of the tree cells.

blahps shows processes that aren't owned by you in grey.

blahps has MOST of the simple process data available through /proc/pid/xxx files as columns which you can show or hide.

blahps has some 'simplified' columns designed to make things easier or more convenient. For example it has an argv0-nopath column so you can sort by the process name NOT including the path components, and 'argv0-nice' which will do things like show the script name instead of the interpreter name if the process seems to be an interpreter running a script, or like showing a jar file for a process which is something like java -jar blah.jar

I commonly use it for:

  • Showing only recent processes (with the show filter set to 'mine & age <30m'
  • Filtering stuff I just dont wan't to see with the hide filter.

Here is a list of aims from before I started it.

Requirements

You will need to have GTK version 2.xxx installed, as well as the perl GTK2 bindings (perl-gtk2 or gtk2-perl depending on your system). You don't need any GNOME rubbish installed.

License

GPL version 2

Downloads

Software downloads are released under the GNU GPL. All downloads and related files are released "as is" and their use is entirely at your own risk.

The current version is available from the sourceforge download page.

Bugs

It does have a few, though these shouldn't last long. They are just ones I haven't gotten around to fixing yet.

  • I broke the %cpu calculation a short while ago and need to fix it again.
  • There is still some small bugs in the tree model. They are hard to catch but I should do it soon.

Donations :)

Hey if you want to donate that would be cool.
If you have a paypal account you could donate a buck or two directly to my paypal account which is under the email address
longhairedgit@gmail.com

My thanks to...

The GTK developers.

The developers of the GTK perl bindings.

The linux kernel developers.

The inventors and developers of perl.

Sourceforge for hosting downloads etc. It's great because I get to see stats showing if someone has downloaded my software!

Open source / free software developers everywhere.

etc etc.

News items / old versions

Here are some of the News entries I wrote about it on my front page, copied verbatim because I am lazy and they sort of show the history of it. Also I couldn't be bothered doing another screenshots section.

20 February 2007

OK I have fixed one or two and done another release on sourceforge. There is still an annoying bug which is eluding me but this release at least doesn't die when you hit enter in the show filter (a small bug which snuck in to my initial sf release).

13 February 2007

Another update for blahps. I added a few properties (columns) to the data model - cwd,exe,environ,mounts etc. So you can see or filter on the current working directory of the processes or their environment variables. I have split the menu of available properties up into a few submenus, since it is so big.

Here is a screenshot of it showing the columns menu.Note also the pane in the bottom half which is showing deceased/dead processes.My blahps is, as far as I know, the only process manager/viewer to let you look at the old dead processes (very handy for short-lived processes that come and go quickly).

Here is a screenshot of it showing filtering on the current working directory 'cwd'.

12 February 2007

Another update for blahps. It have finally added the pane which shows dead processes (one of my ideas which prompted me to write this program) and a status bar.

6 February 2007

Another update for blahps. In this one you can add and remove columns using a right-click menu,and you can reorder columns till your heart is content. It also now remembers the column orders and sorting between runs.

5 February 2007

An update for blahps

30 January 2007

Here is another update to blahps. It is working wickedly now. One example of its nice features is that you can filter including the process age and whether the process belongs to you. So, I have as my default filter 'mine & age <1h' because I am not really likely to be interested in a process that isn't a recent one. I believe that although sorting is great - for things like this what you really want is to just see less stuff that you arent interested in. ie sorting by age is great - filtering by age is even better. I plan to add a toolbar with all sorts of customisable filters so that you can instantly show 'recent' processes or 'hogs' or whatever instead of showing everything and having to sort by pid or age or %CPU.

The tree model bug that existed in the previous version is now fixed and it works beautifully (in tree mode or flat mode).

Here is a screenshot of the flat view (ideal for sorting).

What you can't see from a screenshot is that this program catches new processes very quickly as they are created and die, without disturbing the user interface much (ie without causing all the expanded nodes in the tree to collapse etc etc).

Here is another screenshot of it showing the tree view.

27 January 2007

Here is an update to blahps It is coming along nicely now - it has a separate show, hide, and expand filters a the top, it has an autorefresh toggle, and the filters even allow you to filter to (for example) nchildren <20. So I use that in my expand filter so that it expands everything which has less than 20 child processes. It occasionally dies when the model gets out of sync with the view (which I am convinced is due to a bug in GTK (or due to crappy documentation not describing how exactly the model/view should interact).

15 January 2007

Here is a new program i am working on - a gui tool for viewing/killing processes - like psui except hopefully it (blahps) will be better. Here is a list of some of the aims I have for it. It uses a custom Gtk2 TreeModel so it might also serve someone as an example of one of those, which I have not been able to find on the internet to date (other than an example of a flat list model).