440caeb555
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
68 lines
2.4 KiB
Text
68 lines
2.4 KiB
Text
cinit - Dependencies
|
|
====================
|
|
Nico Schottelius <nico-cinit__@__schottelius.org>
|
|
0.1, for cinit 0.3, Initial Version from 2005-12-13
|
|
:Author Initials: NS
|
|
|
|
This document describes the different dependency types of cinit.
|
|
|
|
|
|
Dependencies in general
|
|
-----------------------
|
|
Each service may have two types (non-exclusive) types of dependencies:
|
|
The so called `needs` or `wants`. These are directories below the service
|
|
directory and contain symbolic links to the dependencies.
|
|
The name of the link can be freely chosen.
|
|
|
|
An example:
|
|
|
|
The service '/etc/cinit/svc/getty/2' needs the service
|
|
'/etc/cinit/svc/local-tuning/keyboard-layout':
|
|
--------------------------------------------------------------------------------
|
|
[21:35] hydrogenium:needs# cd /etc/cinit/svc/getty/2/needs
|
|
[21:35] hydrogenium:needs# ls -l
|
|
insgesamt 0
|
|
lrwxrwxrwx 1 root root 37 2006-10-26 17:51 keyboard-layout -> ../../../local-tuning/keyboard-layout
|
|
[21:35] hydrogenium:needs# cd keyboard-layout/
|
|
[21:35] hydrogenium:keyboard-layout# pwd -P
|
|
/etc/cinit/svc/local-tuning/keyboard-layout
|
|
--------------------------------------------------------------------------------
|
|
(Warning: This is an incomplete example, it misses at least `mount/root`
|
|
as dependency)
|
|
|
|
This service could additionally want something else, too. It is also
|
|
possible that a service only `wants` another service or that a service
|
|
has no dependencies.
|
|
|
|
|
|
Absolute versus relative links
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
cinit does not care whether a link is relative or absolute. And
|
|
as far as I can see it does not make any difference to usability.
|
|
|
|
In general, it seems to be a little bit 'easier' to use relative links
|
|
when manually configuring cinit ('ln -s ../../../service' versus
|
|
'ln -s /etc/cinit/svc/category/service'), but easier readable when
|
|
analysing them (with `ls -l').
|
|
|
|
|
|
The two types
|
|
-------------
|
|
|
|
needs
|
|
~~~~~
|
|
`Needs` are the 'hard dependencies': If a services fails to start that
|
|
is linked in the `needs` directory, the service will not be started.
|
|
|
|
|
|
wants
|
|
~~~~~
|
|
`Wants` are the 'soft dependencies': cinit will try to start the dependencies
|
|
found in `wants` before the service, but the service will also be started,
|
|
indenpendend of success of the dependencies.
|
|
|
|
|
|
Circular dependency problem
|
|
----------------------------
|
|
If you manage to create circular dependencies cinit will fall into an
|
|
endless loop. Use `cinit.check.config` to verify your configuration.
|