5446e32810
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
166 lines
6.8 KiB
Markdown
166 lines
6.8 KiB
Markdown
cinit is a fast, small and simple init with support for profiles
|
|
|
|
## Why should I use cinit?
|
|
|
|
* To significant speedup the startup process
|
|
* To use highest level of parallelisation at startup
|
|
* To benefit from real dependencies (so called ***needs*** and ***wants***)
|
|
* To easily create profiles that can be chosen at startup (even **before** init is started!)
|
|
|
|
## How does cinit work?
|
|
|
|
Cinit creates a dependency tree at startup and executes the services.
|
|
A service can have two type of dependencies:
|
|
|
|
* ***wants*** describe soft dependencies (i.e. it's not fatal if the wanted service fails to start)
|
|
* ***needs*** describe hard dependencies (if the needed service fails, the depending won't be started)
|
|
|
|
Let's have a look at an example:
|
|
|
|
|
|
A
|
|
(wants)
|
|
/ \
|
|
|------> B \ C
|
|
| / \ / \
|
|
^ (needs) (needs) (wants)
|
|
| D E F
|
|
| |
|
|
|------<------(needs)----|
|
|
|
|
|
|
Or in words:
|
|
|
|
* B and C do not have dependencies
|
|
* They will be started at the beginning
|
|
* A wants B and C
|
|
* A waits until B and C are executed and started afterwards,
|
|
independently of the success of B and C
|
|
* A will also be started, if B and C fail to start.
|
|
* D needs B
|
|
* D will only be started, if B is successfully started
|
|
* E needs B and C
|
|
* E will only be started, if both B and C are successfully started
|
|
* F wants C and needs B
|
|
* F will only be started, if B is successfully started
|
|
* F waits until C is started and is started afterwards
|
|
|
|
## 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:
|
|
|
|
* [Gitweb](http://git.schottelius.org/?p=cLinux/cinit.git;a=summary).
|
|
* [Mirror at github](http://github.com/telmich/cinit)
|
|
|
|
|
|
### Archives
|
|
|
|
* [[cinit-0.3pre15.tar.bz2|archives/cinit-0.3pre15.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre15/))
|
|
[[changes|browse_source/cinit-0.3pre15/doc/changes/0.3pre15]]
|
|
* [[cinit-0.3pre14.tar.bz2|archives/cinit-0.3pre14.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre14/))
|
|
[[changes|browse_source/cinit-0.3pre14/CHANGES]]
|
|
* [[cinit-0.3pre13.tar.bz2|archives/cinit-0.3pre13.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre13/))
|
|
[[changes|browse_source/cinit-0.3pre13/CHANGES]]
|
|
* [[cinit-0.3pre12.tar.bz2|archives/cinit-0.3pre12.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre12/))
|
|
[[changes|browse_source/cinit-0.3pre12/CHANGES]]
|
|
* [[cinit-0.3pre11.tar.bz2|archives/cinit-0.3pre11.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre11/))
|
|
[[changes|browse_source/cinit-0.3pre11/CHANGES]]
|
|
* [[cinit-0.3pre10.tar.bz2|archives/cinit-0.3pre10.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre10/))
|
|
[[changes|browse_source/cinit-0.3pre10/CHANGES]]
|
|
* [[cinit-0.3pre9.tar.bz2|archives/cinit-0.3pre9.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre9/))
|
|
[[changes|browse_source/cinit-0.3pre9/CHANGES]]
|
|
* [[cinit-0.3pre8.tar.bz2|archives/cinit-0.3pre8.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre8/))
|
|
[[changes|browse_source/cinit-0.3pre8/CHANGES]]
|
|
* [[cinit-0.3pre7.tar.bz2|archives/cinit-0.3pre7.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre7/))
|
|
[[changes|browse_source/cinit-0.3pre7/CHANGES]]
|
|
* [[cinit-0.3pre6.tar.bz2|archives/cinit-0.3pre6.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre6/))
|
|
[[changes|browse_source/cinit-0.3pre6/CHANGES]]
|
|
* [[cinit-0.3pre5.tar.bz2|archives/cinit-0.3pre5.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre5/))
|
|
[[changes|browse_source/cinit-0.3pre5/CHANGES]]
|
|
* [[cinit-0.3pre4.tar.bz2|archives/cinit-0.3pre4.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre4/))
|
|
[[changes|browse_source/cinit-0.3pre4/CHANGES]]
|
|
* [[cinit-0.3pre3.tar.bz2|archives/cinit-0.3pre3.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre3/))
|
|
[[changes|browse_source/cinit-0.3pre3/CHANGES]]
|
|
* [[cinit-0.3pre2.tar.bz2|archives/cinit-0.3pre2.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre2/))
|
|
[[changes|browse_source/cinit-0.3pre2/CHANGES]]
|
|
* [[cinit-0.3pre1.tar.bz2|archives/cinit-0.3pre1.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.3pre1/))
|
|
[[changes|browse_source/cinit-0.3pre1/CHANGES]]
|
|
* [[cinit-0.2.1.tar.bz2|archives/cinit-0.2.1.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.2.1/))
|
|
[[changes|browse_source/cinit-0.2.1/CHANGES]]
|
|
* [[cinit-0.2.tar.bz2|archives/cinit-0.2.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.2/))
|
|
[[changes|browse_source/cinit-0.2/CHANGES]]
|
|
* [[cinit-0.1.tar.bz2|archives/cinit-0.1.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.1/))
|
|
[[changes|browse_source/cinit-0.1/CHANGES]]
|
|
* [[cinit-0.0.8.tar.bz2|archives/cinit-0.0.8.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.0.8/))
|
|
[[changes|browse_source/cinit-0.0.8/CHANGES]]
|
|
* [[cinit-0.0.7.tar.bz2|archives/cinit-0.0.7.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.0.7/))
|
|
[[changes|browse_source/cinit-0.0.7/CHANGES]]
|
|
* [[cinit-0.0.6.tar.bz2|archives/cinit-0.0.6.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.0.6/))
|
|
[[changes|browse_source/cinit-0.0.6/CHANGES]]
|
|
* [[cinit-0.0.5.tar.bz2|archives/cinit-0.0.5.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.0.5/))
|
|
[[changes|browse_source/cinit-0.0.5/CHANGES]]
|
|
* [[cinit-0.0.4.tar.bz2|archives/cinit-0.0.4.tar.bz2]]
|
|
([browse source](browse_source/cinit-0.0.4/))
|
|
[[changes|browse_source/cinit-0.0.4/CHANGES]]
|
|
|
|
## Support
|
|
|
|
### 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:
|
|
|
|
* [[2005-10-22: (German) speech at Technophil|software/cinit/speeches/2005-10-22]]
|
|
* [[2005-08-06: (German) online speech|software/cinit/speeches/2005-08-06]]
|
|
|
|
### Mailing list
|
|
There is a general
|
|
[cinit mailing list](http://l.schottelius.org/mailman/listinfo/cinit) available.
|
|
|
|
### IRC
|
|
You can join the development ***IRC channel***
|
|
[#cLinux on irc.freenode.org](irc://irc.freenode.org/#cLinux).
|
|
|
|
## Related websites
|
|
|
|
* BSD init systems (same codebase):
|
|
* <a href="http://www.freebsd.org/cgi/cvsweb.cgi/src/sbin/init/">FreeBSD</a>,
|
|
* <a href="http://cvsweb.netbsd.org/bsdweb.cgi/src/sbin/init/">NetBSD</a>,
|
|
* <a href="http://www.openbsd.org/cgi-bin/cvsweb/src/sbin/init/">OpenBSD</a>
|
|
* <a href="http://www.initng.org/">initng</a>
|
|
* <a href="http://www.fefe.de/minit/">minit</a>
|
|
* <a href="http://smarden.org/runit/">runit</a>
|
|
* <A HREF="http://www.atnf.csiro.au/~rgooch/linux/boot-scripts/">simpleinit</a>
|
|
* <a href="ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/">sysvinit</a>
|
|
* <A HREF="http://www.netsplit.com/blog/work/canonical/upstart.html">upstart</A>
|
|
|
|
|
|
[[!tag unix]]
|