Table des matières
Pour avoir la liste complète des services, installez sysv-rc-conf: sudo aptitude install sysv-rc-conf
Puis lancez-le: sudo sysv-rc-conf
L'interface est nettement moins sympathique, mais elle permet d'activer/désactiver tous les services au démarrage.
- Chaque ligne représente un service.
- Chaque colonne représente un runlevel (état du système: démarrage, en cours d'utilisation, arrêt, redémarrage…).
- Le runlevel de travail normal sous Ubuntu est 2.
- Utilisez CTRL+N pour passer à la page suivante des services. CTRL+P pour la page précédente.
- Utilisez les flèches pour vous déplacer.
- Utiliser la barre Espace pour cocher/décocher une case.
- Pressez Q pour quitter.
- Généralement, pour désactiver un service du démarrage, décochez ses cases dans les colonnes 2 à 5. Pour le réactiver, recochez ses cases 2 à 5.
- Pour une description humainement compréhensible des services, voir (en anglais): https://wiki.ubuntu.com/InitScriptHumanDescriptions
Pour connaître le runlevel par défaut, il suffit de taper /sbin/runlevel dans une console
Pour changer de runlevel : init x où x correspond au runlevel souhaité
Les scripts de démarrage
Les répertoires sont situés dans /etc/rc.d/rcX.d ou dans /etc/rcX.d selon les distributions (le X correspondant au niveau d'exécution).
Ainsi par exemple dans Ubuntu :
$ ls -l /etc/rc3.d
Affiche les services à démarrer pour le niveau d'exécution 3.
Grâce à l'option -l de la commande, vous voyez que ces fichiers sont en fait des raccourcis pointant vers le répertoire /etc/rc.d/init.d (parfois /etc/init.d), lequel contient donc tout les scripts de démarrage, indépendamment du run level.
Voici la syntaxe de ces raccourcis :
[S | K][XX]nom_du_script
Exemples : S03iptables ou K20samba
S (Start) signifie que le service sera démarré et K (Kill) qu'il sera arrêté. Un service peut ainsi être démarré en run level 2 puis arrêté au 5. Le XX indique la chronologie d'exécution : les services sont démarrés l'un après l'autre, dans un ordre précis.
Vous comprenez donc à présent comment faire 'à la main' pour qu'un service soit lancé au démarrage. Il suffit de créer un raccourci vers un script en respectant la syntaxe (commande ln). Je vous présenterai après des outils graphiques plus faciles.
Autres utilitaires
Debian / Ubuntu
Il existe aussi un petit logiciel intégré au système sur ubuntu/debian : update-rc.d
pour ajouter le script mon_script dans tous les runlevel:
# update-rc.d mon_script defaults
Pour retirer un script mon_script de tous les runlevel:
# update-rc.d -f mon_script remove
Pour régler avec précision un script dans un runlevel (celui-ci ne doit pas du tout être présent dans les runlevel):
# update-rc.d mon_script start 42 2 3 5 . stop 31 0 6 .
Ce qui démarre mon_script dans les runlevel 2, 3 ou 5 avec une priorité 42 et arrête mon_script avec une priorité 31 dans les runlevel 0 et 6 (ceci est un exemple).
Mandriva / Fedora / Red Hat / Suse
Obtenir des informations sur un service
$> chkconfig --list<- fournit la liste de tous les services reconnus et précise pour chaque runlevel si ceux-ci sont lancés au démarrage
$> chkconfig --list service <- fourni la configuration actuelle du service nommé service pour tous les runlevel
Activer/ Désactiver un service sur un service
$> chkconfig --level 35 service on <- spécifie que service doit être lancé au démarrage pour les runlevel 3 et 5
$> chkconfig --level 35 service off <- spécifie que service ne doit pas être lancé au démarrage pour les runlevel 3 et 5
$> chkconfig --add service<- ajoute service comme étant un service pouvant être géré par chkconfig ( bien sûr le fichier du script doit être correctement formaté )
$> chkconfig --del service<- supprime le service
$> chkconfig service reset<- remet la configuration à celle par défaut définie dans le script