chkconfig

Démarrage automatique des services sur Linux

L’un des chose essentiels qu’un administrateur système doit connaitre est de savoir comment configurer les services pour démarrer automatiquement au démarrage afin d’éviter de les lancer manuellement.

Dans cet article nous allons voir comment démarrer les services linux automatiquement sur CentOS 6 /RHEL 6.X, CentOS 7/RHEL 7 et Ubuntu car la méthode est différente sur chaqu’un d’eux.

chkconfig CentOS/RHEL 6 :

chkconfig est l’outils utilisé pour démarrer les service au démarrage sur CentOS/RHEL 6.

D’abord vérifier si le service (ntp dans mon cas) n’est pas configuré pour démarrer automatiquement sur l’un des niveau d’exécution ( runlevel) 2, 3,4 et 5:

[root@Linux ~]# chkconfig --list ntpd
ntpd           0:off 1:off 2:off 3:off 4:off 5:off 6:off

Comme vous pouvez le constater notre service est désactivé au démarrage de la machine, on ajoute le service avec la commande ci-dessous :

[root@Linux ~]# chkconfig --add ntpd 

Ensuite on active le service pour qu’il soit démarré au démarrage :

[root@Linux ~]# chkconfig httpd on

Notre service est bien « on » sur les niveau d’exécution 2, 3, 4 et 5 :

[root@Linux ~]# chkconfig --list ntpd
ntpd           0:off 1:off 2:on 3:on 4:on 5:on 6:off

Si vous souhaitez désactiver le service il suffit de taper les deux commandes ci-dessous :

[root@Linux ~]# chkconfig ntpd off
[root@Linux ~]# chkconfig --del ntpd

Systemd RHEL or CentOS 7 et 8 :

La procédure pour démarrer les service sur CentOS/RHEL 7/8 est complétement différente, il utlise systemd.

Allons vérifier d’abord si le service (httpd dans mon cas) est démarré ou désactivé au démarrage avec la commande ci-dessous :

[root@Linux ~]# systemctl is-enabled httpd.service
disabled

Comme nous pouvons le constater le service est bien désactivé au démarrage. Vous pouvez aussi utilisé la commande ci-dessous :

[root@Linux ~]# systemctl status httpd.service
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2021-05-05 05:38:59 EDT; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 8634 (httpd)
Status: "Processing requests…"
CGroup: /system.slice/httpd.service
├─8634 /usr/sbin/httpd -DFOREGROUND
├─8635 /usr/sbin/httpd -DFOREGROUND
├─8636 /usr/sbin/httpd -DFOREGROUND
├─8637 /usr/sbin/httpd -DFOREGROUND
├─8638 /usr/sbin/httpd -DFOREGROUND
└─8639 /usr/sbin/httpd -DFOREGROUND

Pour faire démarrer notre service au démarrage il suffit d’utiliser la commande ci-dessous :

[root@Linux ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

Et voilà notre service est bien configuré à démarrer au boot :

[root@Linux ~]# systemctl is-enabled httpd.service
enabled

Si vous souhaitez le désactiver il suffit de taper la commande ci-dessous :

[root@Linux ~]# systemctl disable httpd.service
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.

[root@Linux ~]# systemctl is-enabled httpd.service
disabled

update-rc.d Ubuntu :

Sur ubuntu on utilise la commande update-rc.d, elle permet d’ajouter ou de supprimer des processus dans les différents runlevels.

Pour ajouter un service au démarrage sur Ubuntu taper la commande ci-dessous :

[root@Linux ~]# update-rc.d apache2 defaults

Si vous souhaitez le désactiver il suffit de taper la commande ci-dessous :

[root@Linux ~]# update-rc.d -f apache2 remove