Red Hat Bugzilla – Bug 105398
Boot Linux faster by starting services in parallel
Last modified: 2014-03-16 22:38:58 EDT
Description of problem:
Linux system initialization is sometimes slow because services are started in a
fixed order, waiting for one to complete before starting the next.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
Please implement the idea in the referenced web page to allow services to be
started in parallel when all services they depend on are running. The idea is
to use the dependencies facilities in the Make tool to determine what services
have to wait for what other services.
Also allow most services with dependencies to start in parallel by enhancing
them to mark themselves running as soon as possible, and to check if a service
about to be used is running before calling it. Error recovery would involve
timed waits, logging, and possibly user interaction, but the result would allow
the user to log on and start applications while little used services are
starting as low priority background tasks.
When one of these enhanced services is called in the foreground before its
startup is complete, it should raise the priority of its background task and any
other service starter its own starter is currently waiting for. This would
eliminate the problem seen in Windows XP, which allows the user to log on before
system initialization is complete, but makes the user wait for completion of
almost all initialization before any applications can be launched.
Note that it would be easy to implement this piecemeal. Just implement the
original Make so that all services previous to a given service in the current
init order would be listed as dependencies of the given service. When previous
services are known not to be required for the given service, just remove them
from the list. When a service is enhanced as above, all its dependencies can be
removed from the list. Thus, the implementation of the enhancements of the
services can be done in parallel, possibly even to the point of updating an
entry on the Make list during installation.
*** This bug has been marked as a duplicate of 104706 ***
Changed to 'CLOSED' state since 'RESOLVED' has been deprecated.