Différences entre versions de « Gestionnaire de démarrage »
(Page créée avec « = 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. Heureuse... ») |
|||
(3 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 66 : | Ligne 66 : | ||
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 | 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"> |
#!/bin/sh | #!/bin/sh | ||
# | # | ||
Ligne 91 : | Ligne 91 : | ||
# pidfile: /var/run/dhcpd.pid | # pidfile: /var/run/dhcpd.pid | ||
− | . /etc/rc.d/ | + | ... |
+ | </source> | ||
+ | |||
+ | On peut apercevoir dans l'entête la ligne suivante: | ||
+ | <pre> | ||
+ | # chkconfig: - 65 35 | ||
+ | </pre> | ||
+ | |||
+ | qui précise que ''dhcpd'' est tué en 35<sup>éme</sup> position et démarré en 65<sup>éme</sup> position: | ||
+ | <pre> | ||
+ | # find /etc/rc* -name *dhcpd* | ||
+ | /etc/rc.d/rc0.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc0.d/K35dhcpd | ||
+ | /etc/rc.d/rc2.d/S65dhcpd | ||
+ | /etc/rc.d/rc2.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc3.d/S65dhcpd | ||
+ | /etc/rc.d/rc3.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc1.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc1.d/K35dhcpd | ||
+ | /etc/rc.d/rc6.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc6.d/K35dhcpd | ||
+ | /etc/rc.d/rc4.d/S65dhcpd | ||
+ | /etc/rc.d/rc4.d/K35dhcpd6 | ||
+ | /etc/rc.d/rc5.d/S65dhcpd | ||
+ | /etc/rc.d/rc5.d/K35dhcpd6 | ||
+ | </pre> | ||
− | + | = Vérification = | |
− | + | ||
− | </ | + | Pour vérifier le niveau de démarrage, il suffit de spécifier le nom du service |
+ | <pre> | ||
+ | # chkconfig --list dhcpd | ||
+ | dhcpd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt | ||
+ | </pre> |
Version actuelle datée du 16 février 2014 à 19:24
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
#!/bin/sh
#
### BEGIN INIT INFO
# Provides: dhcpd
# Default-Start:
# Default-Stop:
# Should-Start: portreserve
# Required-Start: $network
# Required-Stop:
# Short-Description: Start and stop the DHCP server
# Description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP)
# server.
### END INIT INFO
#
# The fields below are left around for legacy tools (will remove later).
#
# chkconfig: - 65 35
# description: dhcpd provides the Dynamic Host Configuration Protocol (DHCP) \
# server
# processname: dhcpd
# config: /etc/dhcp/dhcpd.conf
# config: /var/lib/dhcpd/dhcpd.leases
# pidfile: /var/run/dhcpd.pid
...
On peut apercevoir dans l'entête la ligne suivante:
# chkconfig: - 65 35
qui précise que dhcpd est tué en 35éme position et démarré en 65éme position:
# find /etc/rc* -name *dhcpd* /etc/rc.d/rc0.d/K35dhcpd6 /etc/rc.d/rc0.d/K35dhcpd /etc/rc.d/rc2.d/S65dhcpd /etc/rc.d/rc2.d/K35dhcpd6 /etc/rc.d/rc3.d/S65dhcpd /etc/rc.d/rc3.d/K35dhcpd6 /etc/rc.d/rc1.d/K35dhcpd6 /etc/rc.d/rc1.d/K35dhcpd /etc/rc.d/rc6.d/K35dhcpd6 /etc/rc.d/rc6.d/K35dhcpd /etc/rc.d/rc4.d/S65dhcpd /etc/rc.d/rc4.d/K35dhcpd6 /etc/rc.d/rc5.d/S65dhcpd /etc/rc.d/rc5.d/K35dhcpd6
Vérification
Pour vérifier le niveau de démarrage, il suffit de spécifier le nom du service
# chkconfig --list dhcpd dhcpd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt