cinit is a fast, small and simple init with support for profiles

Introduction

cinit is a fast init system with dependency features and profile support. It was orientated on the design of Richard Goochs need concept and Felix von Leitners minit. Minit does not support real dependencies (you don't know whether the service you depend on really started) and the need concept is somehow slow (as seen in gentoo). In addition, minit needs libowfat and dietlibc, which may not be found on every Unix system.

Cinit main features

Why should I use cinit?

How does cinit work?

Cinit creates a dependency tree at startup and executes the services. A service can have two type of dependencies:

Let's have a look at an example:

                A
             (wants)
            /       \
 |------> B \        C
 |       /   \      /  \
 ^  (needs)   (needs)   (wants)
 |    D          E        F
 |                        |
 |------<------(needs)----|

Or in words:

Getting cinit

Development versions

You can get the latest (development) version via git:

git clone git://git.schottelius.org/cLinux/cinit.git

Additionally, the following other git ressources are available:

Archives

Documentation

The documentation is currently spread all over the doc/ directory within the tarball and is being cleaned up. Additionally there are two presentations available:

Pre-Configuring

If you want to fine tune cinit parameters, add different path names, change the DESTDIR, ... have a look at conf/*.

Installing cinit

You can install cinit parallel to any other init-system, it won't kill other init's config nor /sbin/init, if it exists:

# make all install

This will create /sbin/cinit. If /sbin/init does not exist, it will be linked to /sbin/cinit.

Configuring cinit

You'll have to configure cinit in /etc/cinit and add services, before you can use it.

Please read doc/configuring.cinit for details. Please read doc/FAO if there are still questions open.

There are some testing examples below doc/examples/, to be used as a starting point.

There are currently no tools to merge your existing init-system to cinit (like sysvinit-merge, bsd-merge or minit-merge) available, but they are in the making (see various bugs in ditz).

Configuring the OS / Kernel

After configuring cinit you need to tell your kernel to boot cinit instead of your current init system. How to do that depends on your system:

Support

IRC

You can join the development IRC channel #cLinux on irc.freenode.org.

Mailing list

Bug reports, questions, patches, etc. should be send to the cinit mailing list.

Related websites