Init system in IPFire 3.x

by Stefan Schantl, March 29, 2011

Do you like what you are reading? Subscribe to our newsletter and don't miss out on the latest...   Join Now

I want to use my first entry at the planet to detail you which init system will be used in the next IPFire version and how it came about.

The story itself is quite funny, we started the development process with the classical SysVinit service. In 2009 I read an article in a linux magazine about a brand new init system called “Upstart”. So I called our project leader and we decided to replace SysVinit with Upstart. We also decided to use a native ( full event based ) Upstart, that mean, no runlevels anymore.

It was a really hard job to get example files for Upstart jobs and to migrate our system to the new init system. At this point I want to give a big thanks to the old project leadership for the weak documentation at this time. ;-) After a short time of usage, a new project got more and more attention – Systemd. We talked at our last developer summit in summer 2010 about the pro and cons of both systems and decided to keep track of them.

At the end of 2010 the main developer of upstart left the project and it got a new maintainer. At this time all of the big linux distributons ( except Ubuntu ) had already moved to Systemd, or will to this with the next release – may that depends on the fast and transparent development process ( in different to the Upstart development ) and the stable piece of software for such a jung project.

In March 2011 we decided to swap our init system again – from Upstart to Systemd. The desicion based on the usage of Systemd in the main distribuions and the unknown future of Upstart and it’s maintainer changement.

So we spent a lot of time again to integrate the software and migrate the Upstart job files to be Systemd compatible. ( Again without compatibility for runlevels – we wont to get rid of them. ) The migrate process is still going on and it’s a really hard job, but we hope to offer a fast and stable init system for the next IPFire version.