Préparation LPI
Exam 101
101.3. Gestion des niveaux
d'exécution
Document sous licence Creative commons « byncsa » http://creativecommons.org/licenses/byncsa/2.0/fr/
Sommaire
Niveaux d'exécution
/etc/inittab
Service, chkconfig
Runlevel, reboot, poweroff, shutdown
UPMC - FP – Préparation LPI - v 1.1
2
101.2 Domaines de connaissances
Poids : 3
Définir le niveau d'exécution par défaut
Changer dynamiquement les niveaux d'exécution
Arrêt et redémarrage à la ligne de commande
Avertissement des utilisateurs avant changements
Arrêt « propre » des processus
UPMC - FP – Préparation LPI - v 1.1
3
101.3 Niveaux d'exécution
Le noyau :
détecte le matériel
monte les systèmes de fichier
lance le programme /sbin/init qui lance les processus
d'initialisation du système
init :
seul processus à être lancé par le noyau
Lancé avec le niveau d'exécution en paramètre
Processus numéro 1.
ps -aux | grep init
root 1 0.0 0.2 2664 436 ? S 08:29 0:01 init
[5]
....
UPMC - FP – Préparation LPI - v 1.1
4
101.3 Niveaux d'exécution
init : père de tous les autres processus
Il gère le démarrage des autres processus, sessions de
login et l'arrêt du système
Le démarrage (ou l'arrêt) des processus est fonction du
niveau d'exécution (runlevels) :
0 : arrêt du système
1 : mode monoutilisateur
2 : mode multiutilisateur sans support réseau
3 : mode multiutilisateur (pas de mode graphique X11)
4 : idem niveau 3 modifiable par l'utilisateur
5 : mode multiutilisateur avec démarrage de la couche graphique
X11
6 : mode reboot (idem niveau 0 mais redémarrage à chaud)
UPMC - FP – Préparation LPI - v 1.1
5
101.3 Niveaux d'exécution
/etc/inittab : fichier d'initialisation d'init
more /etc/inittab
...
id:5:initdefault: (1)
System initialization.
si::sysinit:/etc/rc.d/rc.sysinit (2)
l0:0:wait:/etc/rc.d/rc 0 (3)
l1:1:wait:/etc/rc.d/rc 1 (3)
l2:2:wait:/etc/rc.d/rc 2 (3)
l3:3:wait:/etc/rc.d/rc 3 (3)
l4:4:wait:/etc/rc.d/rc 4 (3)
l5:5:wait:/etc/rc.d/rc 5 (3)
l6:6:wait:/etc/rc.d/rc 6 (3)
Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1 (4)
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
Advertisement
UPMC - FP – Préparation LPI - v 1.1
6
101.3 Niveaux d'exécution
(1) précise quel niveau est utilisé pour démarrer le système
(2) programme à exécuter dès le début du démarrage,
avant qu'un niveau soit définit
(3) En fonction du niveau, exécute le programme rc avec
le numéro de niveau en paramètre
en niveau 5 : init lance la commande rc 5
(4) Mise en place des consoles virtuelles
(consoles de sessions textuelles de [Ctrl]+[Alt]+[F1] à [Ctrl]
+[Alt]+[F6])
UPMC - FP – Préparation LPI - v 1.1
7
101.3 Niveaux d'exécution
Permet également de gérer la séquence [Ctrl]+[Alt]+[Del]
Permet de lancer la version de xdm choisie en runlevel 5
Trap CTRLALTDELETE
ca::ctrlaltdel:/sbin/shutdown t3 r now
Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm nodaemon
UPMC - FP – Préparation LPI - v 1.1
8
101.3 Niveaux d'exécution
En fonction de chaque niveau, le programme rc va lancer des
scripts de configuration du système
Tous les scripts sont regroupés à partir du répertoire /etc/rc.d
/etc/rc.d/rc : programme général d'exécution des scripts en
fonction des niveaux
/etc/rc.d/init.d : répertoire contenant tous les scripts de
configuration des services
/etc/rc.d/rc0.d à /etc/rc.d/rc6.d : répertoires qui contiennent
les scripts (en fait des liens les scripts réels situés dans
/etc/rc.d/init.d) à lancer en fonction du niveau d'exécution
/etc/rc.d/rc.sysinit : script de configuration exécuté une fois
au démarrage quelque soit le niveau d'exécution
/etc/rc.d/rc.local : script utilisable par l'utilisateur pour ajouter
l'exécution de commandes ou script personnels (exécuté en
dernier)
UPMC - FP – Préparation LPI - v 1.1
9
101.3 Niveaux d'exécution
Principe des répertoires rcx.d :
Chaque sousrépertoire contient des liens symboliques qui
pointent vers les scripts réels situés dans /etc/rc.d/init.d
Chaque lien respecte le formalisme suivant
La première lettre du script commence soit par S (pour Start
– scripts lancé à l'entrée du niveau exécution) soit par K (pour
Kill – scripts lancés à la sortie du niveau d'exécution
suivent 2 chiffres (de 00 à 99) destiné à donner un ordre
d'exécution des scripts puis le nom du script réel (dans init.d)
La présence d'un lien détermine si le script réel (dans init.d)
sera exécuté ou non pour le niveau d'exécution
Exemple : le script /etc/rc.d/rc5.d/S10network sera lancé en
niveau d'exécution 5, au démarrage du système, avec l'option
« start »
UPMC - FP – Préparation LPI - v 1.1
10
101.3 Niveaux d'exécution
Pour changer de niveau d'exécution
Utiliser la commande telinit runlevel ou init
runlevel
#telinit 3 : fait passer au niveau d'exécution 3
Mode single user (niveau 1)
Dans ce mode : vous n'avez qu'une seule console textuelle et
le réseau est inactif
ATTENTION : vous êtes directement sous l'identité de
root...sans avoir à saisir de mot de passe !
mode à utiliser pour des opérations de maintenance (pb
disque)...ou si vous avez oublié le mot de passe de root !
#telinit 3 : si la machine est démarrée
Si la machine n'est pas encore démarrée, il faut intervenir au
niveau du chargeur de démarrage (GRUB)
UPMC - FP – Préparation LPI - v 1.1
Advertisement
11
101.3 Niveaux d'exécution
Options de telinit
q ou Q : force telinit de relire le contenu du fichier /etc/inittab
Utilise le niveau d'exécution par défaut
s ou S : passe en single mode
UPMC - FP – Préparation LPI - v 1.1
12
101.3 Niveaux d'exécution
Passage en niveau “single user” avec GRUB
Sélectionner la version du noyau sous lequel démarrer et
taper « e » (edit)
Dans la liste qui apparaît, sélectionner la ligne qui
commence par « kernel » et taper « e »
Se positionner à la fin de cette ligne et insérer un espace
puis le mot « single »
Taper « Entrée » pour quitter le mode d'édition
Taper « b » pour démarrer en mode single user
UPMC - FP – Préparation LPI - v 1.1
13
101.3 Niveaux d'exécution
Passage en niveau “single user” avec LILO
Appuyer sur la toouche Entrée pour éviter le boot
automatique
Après le prompt « boot : » Saisir
linux single
Remplacer “linux” par la directive définie dans lilo.conf si
besoin
UPMC - FP – Préparation LPI - v 1.1
14
101.3 Niveaux d'exécution
Pour contrôler l'exécution des services
service nom_service option
le nom du service correspond au nom du script qui se
trouve dans /etc/init.d
options usuelles :
● start : démarre le service
● stop : arrête le service
● restart ou reload : équivalent à un stop puis à un
start
● status : indique si le service est actif
service cups restart
Arrêt de cups : [ OK ]
Démarrage de cups : [ OK ]
UPMC - FP – Préparation LPI - v 1.1
15
101.3 Niveaux d'exécution
Initialisation des services
chkconfig contrôle l'activation des services
chkconfig --level 35 yum on
chkconfig --list yum
yum 0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche
6:arrêt
chkconfig permet d'intégrer de nouveaux services
exemple :
● #chkconfig –add yum
● cette commande crée automatiquement le lien
/etc/rc.d/rc5.d/S50yum
UPMC - FP – Préparation LPI - v 1.1
16
101.3 Niveaux d'exécution
chkconfig permet de
Ajouter un nouveau service à gérer
Supprimer l'exécution d'un service
Lister l'état des services à démarrer
Changer les informations de démarrage d'un service
Vérifier les informations de démarrage
Chaque service devant être géré par chkconfig doit
comporter ua minimum deux lignes dans le script
d'initialisation
Une contient les niveaux d'exécution et les priorités de
démarrage et d'arrêt
La seconde contient la description du service
UPMC - FP – Préparation LPI - v 1.1
Advertisement
17
101.3 Niveaux d'exécution
#!/bin/bash
#
yum Update notification daemon
#
Author: Jeremy Katz <[email protected]>
#
chkconfig: 345 97 03
#
description: This is a daemon which periodically checks for updates \
and can send notifications via mail, dbus or syslog.
processname: yumupdatesd
config: /etc/yum/yumupdatesd.conf
pidfile: /var/run/yumupdatesd.pid
#
BEGIN INIT INFO
Provides: yumupdatesd
RequiredStart: $syslog $local_fs messagebus
RequiredStop: $syslog $local_fs messagebus
DefaultStart: 2 3 4 5
UPMC - FP – Préparation LPI - v 1.1
18
101.3 Niveaux d'exécution
Options de chkconfig
--level niveau : specifie le niveau d'exécution
impacté
--add service : prise en charge d'un nouveau service
--del service : le service ne sera plus pris en charge
par chkconfig
--list service : liste les services gérés par
chkconfig
on : utilisé pour démarrer un service (par défaut niveau
3,4 et 5)
off : utilisé pour arrêter un service
reset : réinitialisation de la prise en charge du service
en fonction des informations contenues dans le script
d'init
UPMC - FP – Préparation LPI - v 1.1
19
101.3 Niveaux d'exécution
[root@localhost ~]# chkconfig list
ConsoleKit 0:arrêt 1:arrêt 2:marche 3:marche 4:marche
5:marche 6:arrêt
NetworkManager 0:arrêt 1:arrêt 2:arrêt 3:marche 4:marche
5:marche6:arrêt
NetworkManagerDispatcher 0:arrêt 1:arrêt 2:arrêt 3:marche
4:marche5:marche 6:arrêt
acpid 0:arrêt 1:arrêt 2:marche 3:marche 4:marche
....
services basés sur xinetd :
chargendgram: arrêt
chargenstream: arrêt
cvs: arrêt
....
echostream: arrêt
rsync: marche
UPMC - FP – Préparation LPI - v 1.1
20
101.3 Niveaux d'exécution
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
[root@localhost ~]# chkconfig yumupdatesd off
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:arrêt 3:arrêt 4:arrêt 5:arrêt 6:arrêt
[root@localhost ~]# chkconfig level 35 yumupdatesd on
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche 6:arrêt
[root@localhost ~]# chkconfig yumupdatesd reset
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
UPMC - FP – Préparation LPI - v 1.1
21
101.3 Niveaux d'exécution
Advertisement
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:arrêt 3:marche 4:arrêt 5:marche 6:arrêt
[root@localhost ~]# chkconfig del yumupdatesd
[root@localhost ~]# chkconfig list yumupdatesd
le service yumupdatesd prend en charge chkconfig, mais il n'est enregistré à aucun niveau
(exécutez « chkconfig add yumupdatesd »)
[root@localhost ~]# chkconfig add yumupdatesd
[root@localhost ~]# chkconfig list yumupdatesd
yumupdatesd 0:arrêt 1:arrêt 2:marche 3:marche 4:marche 5:marche 6:arrêt
UPMC - FP – Préparation LPI - v 1.1
22
101.3 Niveaux d'exécution
runlevel permet de vérifier le niveau d'exécution actuel
ainsi que le niveau d'exécution précédant
runlevel récupére cette information depuis /var/run/utmp
runlevel affiche le niveau précédant le niveau actuel ou
affiche N sinon (pas de modification depuis le démarrage)
runlevel
N 3
Indication d'un passage du runlevel 3 au runlevel 5
runlevel
3 5
UPMC - FP – Préparation LPI - v 1.1
23
101.3 Niveaux d'exécution
shutdown : permet de redémarrer ou arrêter le système
shutdown options délai message
Intérêt de cette commande : délai possible avant exécution
et avertissement des utilisateurs si nécessaire; login bloqué
(en créant le fichier /etc/nologin)
runlevel affiche le niveau précédant le niveau actuel ou
affiche N sinon (pas de modification depuis le démarrage)
Options
k : avertissement sans réellement exécuter la
commande
r : reboot
h : halt ou poweroff
UPMC - FP – Préparation LPI - v 1.1
24
101.3 Niveaux d'exécution
Options (suite)
P : shutdown puis arrêt alimentation
H : shutdown sans arrêt alimentation
now : shutdown immédiat
f : pas de fsck au reboot
F : force le fsck au reboot
c : annule la procédure de shutdown si délai et si la
procédure n'a pas démarré
a : vérifie que l'utilisateur demandant le shutdown est
présent dans /etc/shutdown.allow
Heure du shutdown au format hh:mm ou +m corrspondant à
un retard de m minutes du shutdown
Un message libre d'avertissement aux utilisateurs
UPMC - FP – Préparation LPI - v 1.1
25
101.3 Niveaux d'exécution
halt : demande d'arrêt, poweroff ou reboot du système
shutdown options délai message
Même binaire pour les commandes poweroff et reboot
Ecrit cette information dans le fichier /var/log/wtmp
Attention : tout utilisateur connecté à la console peut lancer
les commandes halt, reboot ou poweroff
Dans tous les autres runlevel autres que 0 ou 6, halt
invoque shutdown avec les options h ou r
ll /sbin/halt /sbin/poweroff /sbin/reboot
rwxrxrx 1 root root 12308 Jan 21 2009 /sbin/halt
lrwxrwxrwx 1 root root 4 Jan 11 11:24 /sbin/poweroff > halt
lrwxrwxrwx 1 root root 4 Jan 11 11:24 /sbin/reboot > halt
UPMC - FP – Préparation LPI - v 1.1
26
Quelques conseils LPI...
UPMC - FP – Préparation LPI - v 1.1
27