Par défaut les services des systèmes Linux démarrent les uns après les autres. Un moyen de gagner du temps lors du démarrage est de lancer les différent services en parallèle ce qui évite de devoir attendre qu'un service ait fini de démarrer pour en lancer d'autre.
Pour cela il faut modifier l'option CONCURRENCY
dans le fichier
/etc/init.d/rc
. Par défaut elle est désactivée:
39 [...]
40 CONCURRENCY=none
41 [...]
Cette option peut prendre trois valeurs différentes:
none
: désactivation de l'option de démarrage concurrentielstartpar
: les services sont lancés en parallèle mais leur sortie reste en série.shell
: les services sont lancés en parallèle dans des shell différents ainsi les sorties sont aussi parallélisées.
Plus la parallélisation augmente plus le temps de démarrage est raccourci.
Cependant certains services doivent être lancés après d'autre. Pour cela il faut réordonnancer les services pour être sur de ne pas démarrer un service tant que les pré-requis ne sont pas remplis. Par exemple le service de mise à jour de leur sur les serveur distant doit être lancé qu'une fois la connexion réseau établie.
Le paquet insserv
permet de calculer les dépendances des différents
scripts de démarrage, et ainsi de créer la hiérarchie nécessaire. Une fois
installé il faut lancé la commande suivante en root pour optimiser les scripts
init:
# update-bootsystem-insserv
Lors d'une mise à jour du système des messages d'avertissement similaire au suivant peuvent apparaitre:
insserv: warning: current start runlevel(s) (0 6) of script `umountroot' overwrites defaults (empty).
Cela veut simplement dire que l'ordre de lancement d'un ou plusieurs scripts
init ont été modifiés lors de l'installation d'un ou plusieurs paquets. Il
suffit de relancer la commande update-bootsystem-insserv
pour refaire le
calcul de hiérarchie t faire disparaitre ces messages d'avertissement.