Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

Gestionnaire de démarrage

De The Linux Craftsman

Introduction

Les services peuvent être démarrés via des scripts présents dans le répertoire /etc/init.d mais cela demande une intervention manuelle. Heureusement, il existe alors des répertoires /etc/rcX.d, qui contiennent les scripts permettant de démarrer / arrêter les services en fonction du runlevel de la machine.

Les scripts présents dans ces répertoires sont des liens symboliques vers les scripts présents dans /etc/init.d et faire cela manuellement est pénible, c'est là que l'utilitaire chkconfig va nous aider.

runlevel, kesako ?

Le fichier /etc/inittab

Le runlevel est le niveau de démarrage dans lequel se trouve le système. Pour information, ces runlevel sont détaillés dans le fichier /etc/inittab qui permet de définir le niveau de démarrage du système:

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

Dans cet exemple, le runlevel est à 3, c'est à dire multi-utilisateur sans interface graphique.

A manipuler avec précaution

Vous vous doutez bien que mettre le runlevel à 0 (halt) ou 6 (reboot) est tout sauf une bonne idée. En effet, la machine ma amorcer son démarrage, lire le fichier /etc/inittab et de suite redémarrer ou s’arrêter...

Voir le runlevel

Il suffit d'utiliser la commande du même nom

# runlevel
N 3

Configuration du niveau de démarrage des services

Pour configurer le niveau de démarrage d'un service, il existe deux possibilités:

  • On peut spécifier le ou les runlevel
chkconfig --level 3 dhcpd on
  • On peut faire confiance à l'éditeur du paquetage
chkconfig dhcpd on

Dans le deuxième cas, chkconfig va étudier le script de démarrage du service (dans cet exemple /etc/init.d/dhcpd) à la recherche des niveaux de démarrage et d'arrêt <source lang="bash">

  1. !/bin/sh
      1. BEGIN INIT INFO
  2. Provides: dhcpd
  3. Default-Start:
  4. Default-Stop:
  5. Should-Start: portreserve
  6. Required-Start: $network
  7. Required-Stop:
  8. Short-Description: Start and stop the DHCP server
  9. Description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP)
  10. server.
      1. END INIT INFO
  11. The fields below are left around for legacy tools (will remove later).
  12. chkconfig: - 65 35
  13. description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP) \
  14. server
  15. processname: dhcpd
  16. config: /etc/dhcp/dhcpd.conf
  17. config: /var/lib/dhcpd/dhcpd.leases
  18. pidfile: /var/run/dhcpd.pid

... </script>

On peut apercevoir dans l'entête la ligne suivante:

# chkconfig: - 65 35