Recherche de site Web

systemctl : remplacement de la commande chkconfig sur Linux moderne


chkconfig est un utilitaire de ligne de commande utilisé dans les systèmes d'exploitation de type Unix pour gérer les services qui démarrent automatiquement au démarrage du système.

L'outil chkconfig était largement utilisé dans les anciennes distributions Linux comme CentOS 6 et les versions antérieures. chkconfig a permis aux administrateurs d'activer ou de désactiver facilement les services sur différents niveaux d'exécution.

Pourquoi chkconfig était-il important ?

Avant de plonger dans le remplacement moderne, comprenons pourquoi chkconfig était utile :

  • Gestion des services : il fournit un moyen simple de gérer les services de démarrage sans avoir besoin de créer ou de supprimer manuellement des liens symboliques dans les répertoires /etc/rc.d/.
  • Contrôle des niveaux d'exécution : il permettait aux administrateurs de spécifier quels services devaient s'exécuter à différents niveaux d'exécution. Les niveaux d'exécution sont différents modes de fonctionnement pour les systèmes de type Unix, tels que le mode mono-utilisateur, le mode multi-utilisateur, etc.
  • Commodité : il a rationalisé la gestion des services avec des commandes simples pour répertorier, ajouter ou supprimer des services au démarrage automatique.

Commandes chkconfig de base

Il s'agit de notre série de commandes Linux en cours dans laquelle nous allons examiner comment utiliser efficacement la commande chkconfig avec ses paramètres disponibles.

L'outil de commande chkconfig nous permet de configurer les services pour qu'ils démarrent et s'arrêtent automatiquement dans les scripts /etc/rc.d/init.d via la ligne de commande.

Voyons quelques commandes courantes utilisées avec chkconfig :

1. Répertoriez tous les services

L'utilisation du paramètre '--list' affichera tous les services et leur état de démarrage actuel dans chaque configuration de niveau d'exécution.

chkconfig --list

NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrt-oops       0:off   1:off   2:off   3:on    4:off   5:on    6:off
...

2. Vérifiez l'état d'un service spécifique

La commande ci-dessous affiche la configuration de démarrage d'un service spécifique appelé HTTP, qui est désactivé dans tous les niveaux d'exécution.

chkconfig --list | grep httpd

httpd           0:off   1:off   2:off   3:off   4:off   5:off   6:off

3. Comment démarrer un service particulier aux niveaux d'exécution

Les commandes `chkconfig` suivantes montrent comment configurer les services HTTP pour qu'ils démarrent uniquement aux niveaux d'exécution 3 et 5 en utilisant le paramètre `--level`.

La première commande démarre les services `httpd` aux niveaux d'exécution 3 et 5, tandis que la deuxième commande vérifie l'état de `httpd ` services exécutés sur ces niveaux d’exécution.

chkconfig --level 35 httpd on
chkconfig --list | grep httpd

Exemple de résultat :

httpd           0:off   1:off   2:off   3:on    4:off   5:on    6:off

4. Comment vérifier quels services sont activés/désactivés

La commande suivante affichera tous les services qui sont Activé et Désactivé dans un niveau d'exécution spécifique 5.

chkconfig --list | grep 5:on

Exemple de résultat :

NetworkManager  0:off   1:off   2:on    3:on    4:on    5:on    6:off
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrt-oops       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
...
chkconfig --list | grep 5:off

Exemple de résultat :

dnsmasq         0:off   1:off   2:off   3:off   4:off   5:off   6:off
dovecot         0:off   1:off   2:off   3:off   4:off   5:off   6:off
firstboot       0:off   1:off   2:off   3:off   4:off   5:off   6:off
kdump           0:off   1:off   2:off   3:off   4:off   5:off   6:off
mysqld          0:off   1:off   2:off   3:off   4:off   5:off   6:off
netconsole      0:off   1:off   2:off   3:off   4:off   5:off   6:off
nfs             0:off   1:off   2:off   3:off   4:off   5:off   6:off
...

5. Comment arrêter un service particulier aux niveaux d'exécution

La commande suivante désactivera un service appelé postfix pour un seul niveau d'exécution. De même, nous pouvons Désactiver un service particulier à plusieurs niveaux d'exécution en une seule fois, comme indiqué ci-dessous.

chkconfig --level 3 postfix off
chkconfig --level 2345 postfix off

6. Comment activer ou désactiver un service

Pour permettre à un service de démarrer automatiquement au démarrage.

chkconfig servicename on

Pour désactiver le démarrage automatique d'un service au démarrage.

chkconfig servicename off

La commande Passer à systemctl

Au fur et à mesure de l'évolution des systèmes Linux, le système init (utilisé par chkconfig) a été remplacé par systemd, qui est un système moderne et un gestionnaire de services pour les systèmes d'exploitation Linux.

Il offre plus de fonctionnalités et de meilleures performances. Avec ce changement, chkconfig est devenu obsolète et systemctl a pris sa place.

Pourquoi utiliser systemctl ?

systemctl est l'outil de ligne de commande utilisé pour contrôler le système et le gestionnaire de services systemd. Il offre un moyen plus puissant et plus flexible de gérer les services.

Voici quelques avantages clés :

  • Interface unifiée : elle fournit une commande unique pour gérer à la fois les services système et les niveaux d'exécution (maintenant appelés cibles dans systemd).
  • Performances améliorées : systemd démarre les services en parallèle, améliorant ainsi les temps de démarrage.
  • Plus de fonctionnalités : il prend en charge des fonctionnalités modernes telles que les dépendances de service, le démarrage de services à la demande, etc.

Commandes systemctl de base

Voyons comment effectuer des tâches similaires avec systemctl que vous auriez effectuées avec chkconfig :

Comment répertorier les services actifs

Cette commande répertorie tous les services actifs gérés par systemd sur le système en fournissant plus d'informations sur l'état et les propriétés de chaque service.

systemctl list-units --type=service

Comment activer ou désactiver un service

Pour permettre à un service de démarrer automatiquement au démarrage.

systemctl enable servicename

Pour désactiver le démarrage automatique d'un service au démarrage.

systemctl disable servicename

Comment démarrer, arrêter et redémarrer le service

Pour démarrer un service immédiatement.

systemctl start servicename

Pour arrêter un service immédiatement.

systemctl stop servicename

Pour redémarrer un service immédiatement.

systemctl restart servicename

Comment vérifier l'état du service

Pour vérifier l'état d'un service.

systemctl status servicename
Conclusion

Alors que chkconfig était un outil précieux pour gérer les services dans les anciennes distributions Linux, la transition vers systemd et la commande systemctl a apporté de nombreuses améliorations en termes de fonctionnalité et performances.

Comprendre comment utiliser systemctl est essentiel pour l'administration Linux moderne. Les commandes peuvent être différentes, mais elles offrent plus de contrôle et une meilleure intégration avec le système dans son ensemble.

Si vous êtes familier avec chkconfig, l'apprentissage de systemctl vous aidera à gérer les services plus efficacement dans les environnements Linux actuels.