System Init Script Dependencies
Created: 2005-04-23 by MattZimmerman
Initscript dependencies are needed to achieve running init scripts in parallel to speed up the boot process, and to ensure that services are run in the correct order.
This will be implemented with a gradual transition of initscripts being marked up for dependencies, followed by sysvinit being switched to a parallel init using the dependencies supplied.
Eliminate init script ordering headaches and provide a framework for parallel init
Scope and Use Cases
- User expects faster boot with more reliability
Based on the LSB spec - precedent in Redhat & Fedora, which appears to be a workable solution that can apply to both Debian & Ubuntu.
Only some Fedora Core 4 initscripts have the 'magic comments' that indicate initscript dependencies. In order to make use of these dependencies, init needs to read in the files & calculate correct ordering. Otherwise unmarked packages will just be executed in the numerical order specified. sysvinit in FC4 appears not to have this functionality yet.
A transition plan will be to migrate init scripts and once they are all ready (possibly just those in main), sysvinit can be switched to do parallel startups based on dependencies.
See USplash BOF for other information about LSB functions & output requirements
- Integration with bootlogd may be needed, if USplash will use it.
- Servers cannot rely on usplash for output of initscript messages
- A daemon to listen on the end of a socket/pipe may be used to correctly order the boot messages by buffering
- Comment: A fifo has a 4k buffer (size specified in kernel) and will work on a readonly fs, but the buffer can only be written to is someone has opened the other end for reading.
Data Preservation and Migration
any package using an initscript
User Interface Requirements
- Boot messages must not be output at the same time but buffered by a program
- Initscripts need to be fixed to use lsb functions and have dependency ordering magic comments in them.
UDU BOF Agenda
- Should we make a distribution-wide move toward a dependency-based
- init process? (pro/con) If so:
- Are there any implementations with momentum that we can adopt?
Is the LSB strategy sane?
- Survey available dependency-based init systems
- Overall suitability for Ubuntu