CentOS/RHEL nous fournit un outil de ligne de commande simple (chkconfig) pour gérer les services qui sont démarrés pendant les différents niveaux d'exécution de votre système. chkconfig nécessite quelques lignes de commentaires supplémentaires dans le script d'initialisation réel pour lui indiquer dans quels niveaux d'exécution le service doit être démarré et quand, relativement, le service doit être démarré lors de l'initialisation du niveau d'exécution. (les scripts d'initialisation sont traités dans un ordre spécifique pour s'assurer que les services dépendant des autres sont démarrés après les services dont ils dépendent.) Ces lignes, extraites du script d'initialisation httpd, sont les suivantes :
# chkconfig: 345 85 15 # description: Apache is a World Wide Web server. It is used to serve # HTML files and CGI.
Ici,
345 – les niveaux d'exécution pour lesquels le service sera activé par défaut.
85 – priorité au démarrage. Plus le nombre est bas, plus la priorité est élevée et plus tôt un service sera démarré dans un niveau d'exécution donné.
15 – priorité d'arrêt. Plus le nombre est bas, plus la priorité est élevée et plus tôt un service sera arrêté dans un niveau d'exécution donné.
Répertorier les services à l'aide de chkconfig
Pour obtenir une liste des services démarrés à quel niveau d'exécution, utilisez la commande "chkconfig –list “.
# chkconfig --list acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off blk-availability 0:off 1:on 2:on 3:on 4:on 5:on 6:off cgconfig 0:off 1:off 2:off 3:off 4:off 5:off 6:off ...
Facultativement, vous pouvez ajouter un nom comme argument supplémentaire, et chkconfig répertoriera uniquement les informations pour ce service. Voici la sortie de chkconfig –list iptables sur mon système :
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:on 5:on 6:off
Dans ce cas, chkconfig signale que le service iptables doit être démarré pour les niveaux d'exécution 3, 4 et 5.
Activer ou désactiver un service au démarrage
Dans cet exemple, nous utiliserons le service iptables. Si vous le souhaitez, listez les niveaux de règles actuels où les services commenceront :
# chkconfig --list iptables httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
"chkconfig on" sans spécifier de niveau d'exécution activera le service aux niveaux d'exécution 2,3,4 et 5. Par exemple :
# chkconfig iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
De même, pour désactiver le service à tous les niveaux d'exécution, utilisez la commande "chkconfig off". Par exemple :
# chkconfig iptables off
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off
Contrôle précis de chkconfig
Le –niveau L'option peut être donnée à chkconfig pour spécifier les niveaux d'exécution pour effectuer la modification (activés ou désactivés). Les autres niveaux d'exécution ne seront pas modifiés. Cela configurerait le système pour démarrer iptables dans les niveaux d'exécution 3 et 5 :
# chkconfig --level 35 iptables on
# chkconfig --list iptables iptables 0:off 1:off 2:off 3:on 4:off 5:on 6:off
Ajout d'un service à l'aide de chkconfig
Pour ajouter un nouveau service à tous les niveaux d'exécution selon les recommandations données à chkconfig, utilisez la commande suivante :
# chkconfig --add [servicename]
chkconfig définit tous les liens pour le service dans les répertoires corrects d'un seul coup.
Remarque :Lorsqu'une application ou un service est installé, un script d'initialisation est généré et automatiquement ajouté au fichier /etc/init.d. Donc, si vous avez des difficultés à identifier le nom de votre service, visitez /etc/init.d, localisez le script approprié et obtenez le nom du service à partir de son contenu.Réinitialisation des informations de service
Jouer avec les services est instructif, tant que vous disposez d'une sauvegarde de votre arborescence de répertoires /etc/rc.d et d'un moyen de revenir dans le système pour le restaurer. Cependant, ce type d'action drastique n'est généralement pas nécessaire. Au lieu de cela, vous pouvez restaurer la priorité de démarrage du service et d'autres informations aux paramètres recommandés en exécutant la commande suivante.
# chkconfig [servicename] reset
Cette commande ramène tout à une valeur par défaut (espérons-le) saine.
Supprimer un service à l'aide de chkconfig
Si vous n'avez plus besoin d'utiliser un service, vous pouvez le désactiver au démarrage en utilisant le commutateur "chkconfig off":
# chkconfig [servicename] off
Vous devez ensuite procéder à l'arrêt de l'exécution du service avec la commande suivante :
# service [servicename] stop
La commande précédente prendra effet immédiatement. Cependant, afin de finaliser cette procédure, vous pouvez la supprimer de l'outil de gestion chkconfig en tapant :
# chkconfig --del [servicename]