Init Ahoy!

Monday 26. February, 2007

The Init Scripts and System of Prospekt Linux are getting some shape. As Prospekt Linux aims to copy from other distributions, init script system was “derived” from Arch Linux.

Now /etc has following files:

  • rc.conf
    • Configuration file for runlevels 2-5. Lists all daemons/services to be started when entering one of the levels 2-5.
  • rc.sysinit
    • The first init script that is run. It prepares the system for some actual runlevel
  • rc.multi
    • Acts as a starter script for runlevels 2-5, which are combined into one. It starts scripts in /etc/rc.d defined in rc.conf
  • rc.shutdown
    • Script for runlevels 0 and 6. As it’s obvious, this script will shutdown or reboot the system.
  • rc.single
    • Script for runlevel 1, when there’s one other users or services running.
  • rc.d/*
    • A directory containing all init scripts for daemons/services, that are not critical for booting (those scripts should be integrated into rc.sysinit)

The actual init scripts derived mainly from (Beyond) Linux From Scratch and Arch Linux are almost working as expected.

Why do I do this to myself…?

Sunday 11. February, 2007

All this writing about Conary made me try it out again.

And yes! The evil init script policy is now overridden by (still evolving) Prospekt Linux Policies. Total changes:

  • Don’t complain about missing chkconfig as it is not used
  • Don’t move init scripts to their standard locations, that are more like guidelines anyway
  • Don’t remove symlinks from runlevel folders like rc[0-6].d and so on. I may revert this change in the future…

I probably have to change the way init scripts are handled in runlevel changes and the way they are marked to be booted or not. Maybe even replace the whole SysVinit with something more exotic, such as upstart or initng.

Now continuing from the draft I wrote sometime in the January…

I set up my Ubuntu (edgy)-laptop as a Conary-repository server and it all actually worked quite well: I built new packages in Chroot-jail and commited/cooked them into the repository. Well, it worked ’til I did a “I’m curious”-update from edgy to development version of feisty and what a lovely suprise it was: Python 2.5 and Conary don’t mix, otherwise the system works as fine as it did before…

I made sure that Python 2.4 and it’s development files were installed and Conary did compile from the sources, but apparently Apache’s mod_python doesn’t use 2.4. After unsuccessful mod_python recompile to 2.4, I decided to use my 7 years old Celeron-machine as a Conary-server as it was still running Xubuntu Edgy (I have no idea when I upgraded it to edgy, which is somehow disturbing…).

I moved repository files in a bzip2ped tarball containing  about 27000 very small files (the size of the tarball was 434 MB with 71% compress ratio). It was kinda funny to watch the small red light indicating hd-activity on the old machine while it untarred the tarball… But what a frustration: using of the repository database failed with some cursor error while trying to read it… At this point I couldn’t care less the reasons behind it and destroyed the whole repository and decided to start all over again. (Most of the packages I had created so far would have had to be recompiled anyway, so it doesn’t really matter to “restart” the work).

Because I had nothing special to do today, I managed to mostly finalize the base packages of Prospekt Linux (packages mentioned the Linux from Scratch -book). Of course there’s still some minor issues to be ironed out, such as tagging all the files that should be tagged (Dynamic Tags are explained in the Conary wiki at