Posts

Showing posts from 2013

Procenv 0.27 released

Procenv 0.27 has been released. This release introduces a raft of new features... IPC  It is now possible to display details of the following IPC mechanisms: message queues semaphores shared memory Alas, this feature is not available on BSD's as yet partly since there appears to be no documented way to query these mechanisms. Output Categories The introduction of the IPC categories brings the total number of output categories to 32: meta arguments capabilities cgroups clocks compiler confstr environment file descriptors libraries limits locale misc message queues mounts network oom platform process ranges rusage semaphores shared memory signals sizeof stat sysconf threads time timezone tty uname Highly-Structured Output The code that handles procenv has been completely rewritten so that all output is highly structured. So, rather than displaying file descriptors like this: $ procenv --fds fds: fd 0: terminal=yes ('/dev

procenv 0.26 released

Version 0.26 of the procenv utility is now available. Changes: Check to determine if running on a console now works for FreeBSD/kFreeBSD too. Added ability to show all arguments ( -A / --arguments ) (useful when using --exec ). Added ability to display network details ( -N / --network ). Added BSD/Hurd-specific signals. Corrected output sort order. Mount details now include block, inode and fsck details. There are now 29 categories of environment information displayed when procenv is run (on Linux). Grab it from: https://launchpad.net/procenv/ This update should appear in Debian, Ubuntu and FreeBSD soon...

Upstart 1.10 released

Lots of goodness in this release (explanatory posts to follow): upstart-local-bridge : New bridge for starting jobs on local socket connections. upstart-dconf-bridge : New bridge for Session Inits to react to dconf/gsettings changes. upstart-dbus-bridge : New ' --bus-name ' option to allow bus name variable to be included in dbus-event(7) . New " reload signal " stanza to allow jobs to specify a custom signal that will be sent to the main process (rather than the default SIGHUP ). Inclusion of Session Init sample jobs. Re-exec fixes for handling chroot sessions. Shutdown fix for Session Inits. New python3 module and accompanying integration test suite for testing Upstart running as PID 1 and as a Session Init (privileged and non-privileged). The Upstart cookbook has been updated for this release.

Upstart Cookbook now updated for Upstart in Debian

I've started a long-overdue update to the Upstart Cookbook for Upstart on Debian. Look out for the Debian swirl! :-) http://upstart.ubuntu.com/cookbook

procenv 0.25 now builds on Android

Procenv 0.25 now builds natively under Android: https://launchpad.net/procenv/ It also fixes an interesting issue that was causing it to fail to generate FreeBSD build logs. However, that is now fixed so you can see the FreeBSD build environment now too by looking at the port logs: http://pointyhat.freebsd.org/errorlogs/i386-8-latest-logs/procenv-0.25.log http://pointyhat.freebsd.org/errorlogs/i386-9-latest-logs/procenv-0.25.log   More logs to come - the FreeBSD ports seem to build rather slowly...)

Counting down to Ubuntu and Debian releases with distro-info

A while back I though, "wouldn't it be great if the Ubuntu release schedule could be accessed as some form of web service?" That would allow all sorts of fun scripts to be written. Yes, you could write code to parse the wiki page, but I think the technical term for that is "gross". However, there is now a much simpler alternative in the form of distro-info . If you've never used this awesome tool written by Benjamin Drung you've been missing out! It can tell you all sorts of interesting information. A few examples... Examples of how to use distro-info What is the current development release on the system I am running on? $ distro-info --devel saucy What is the current Debian development release? $ debian-distro-info --devel sid What are the currently supported Ubuntu releases? $ ubuntu-distro-info --supported lucid precise quantal raring saucy What's the latest Ubuntu LTS release? $ ubuntu-distro-info --lts precise What's the c

I'm going to DebConf13

Image
Vorlon and I will be giving a talk on Upstart ( 'Upstart in Debian' ). So if you'd like to learn more about the awesome next-gen event-based init system, please drop by!

A simple two-player QML game for Ubuntu Touch using the Ubuntu SDK: noughts and crosses (aka tic-tac-toe)!

Image
Inspired by Rick 's recent blog posts, and keen to write a blog post with a ridiculously long title, I've been reading up on QML recently. Still bearing the scars from the XML horrors of working with J2EE in the early days, that 3-byte acronym ending in "ML" initially subconsciously somewhat filled me with trepidation. However, as soon as I actually saw some QML, I could see these fears were unfounded ( ! :-)  And in fact I now love QML. It's clean, elegant, powerful, declarative and (OMG YAY!) you can even "%-bounce" on the braces in vim! :-) That said, the qtcreator IDE is extremely good, managing to provide just enough of what you want without requiring endless additional configuration. But it doesn't stop there. The Design Team have done some incredible work in creating the  Ubuntu SDK  components: not only do they look fantastic (if you have the ubuntu-ui-toolkit-examples package installed, try running /usr/lib/ubuntu-ui-toolkit/demos/lau

Observing the initial LXC environment using procenv

If you're interested in seeing the initial environment inside an LXC container, here's how: Install procenv inside the container: $ sudo apt-get install -y procenv Shutdown the container: $ sudo shutdown -h now Boot the container (mine is called " raring " in this example) like this: $ sudo lxc-start -n raring --console-log /tmp/lxc-console.log \ -- /usr/bin/procenv --file=/dev/console --exec \ -- /sbin/init --debug View the /tmp/lxc-console.log logfile in the host environment. Note that those two sets of non-option double-dashes are required; the first tells LXC to treat what follows as a command to run after the container starts (in this case procenv ), and the second set tells procenv to treat what follows as a command to run after it has finished running (in this case Upstart ( /sbin/init :-))!

Byobu Bling with Unicode Custom Indicators

Image
Introduction In these heady times of almost daily advances in UI pizzazz, you could be forgiven for thinking the terminal is somewhat of a dead-zone when it comes to excitement. Oh how wrong you would be though...! If you've never used  Byobu ,  Dustin's  awesome text-based window manage, sudo apt-get install it without delay to be bathed in pure terminal goodness. As shown below, byobu comes with a whole host of standard indicators, allowing the display of useful snippets of information. The indicators are minimal out of terminal-width real estate necessity, but that's also their strength - they provide just the details you really care about in a tight ASCII format. And they're cute of course :-) However, byobu has a well-kept secret: when running with the tmux backend, it supports Unicode indicators. So with the proviso that you are running " byobu-tmux " rather than " byobu-screen ", you can squeeze down those indicators even further

Stateful re-exec for Upstart Sessions? You bet!

As of  Upstart 1.6 , restarting PID 1 is supported without losing state. So as soon as you get an update to either Upstart itself or one of its dependent libraries in Ubuntu, you'll be running the new version automatically, without the need for a reboot. But what about User Sessions ? Are they "second-class citizens"? Of course not! When PID 1 restarts, all the running Session Inits will automatically restart too . You won't notice this of course as your desktop session will continue to run and be fully functional but you too will be running the latest version of Upstart. How does this work? When an instance of Upstart has restarted, it signals this fact over D-Bus. From the user perspective, the upstart-event-bridge , listening to the system instance of Upstart running as PID 1, will generate a " :sys:restarted " event when it detects the restart. This in turn will cause the session job  /usr/share/upstart/sessions/re-exec.conf  to run. And that job re

Upstart User Sessions in Ubuntu Raring

Image
Overview Ubuntu Raring now includes Upstart 1.8 . Upstart 1.7 and 1.8 combined mark a major milestone since they bring the proven power of Upstart to the user as never before: not only is Upstart now managing the system, but it is also capable of managing the default Ubuntu user's desktop sessions too. Why? Question:  Why reuse a system facility at the user level in this way? The modern Linux desktop environment is a very dynamic one: users start and stop applications, switch workspaces, search the dash, adjust personal settings in the panel, connect to different networks, hot-plug USB devices and so on. All of these activities can be represented by "events". Stepping back a second, recall that Upstart was written  from the outset  to take advantage of  the dynamic nature of a modern Linux system . Long gone are the days when a system booted serially. A modern Linux system abounds with "events" from all sorts of different sources: The user plugs or