SlideShare une entreprise Scribd logo
Chapitre 2. Démarrage du système
Prof. M. RIDOUANI
Administration avancée
des systèmes et réseaux
sous Linux
Objectifs
• Personnalisation du processus de démarrage
système
– interroger et modifier le comportement des
services systèmes dans différents niveaux
d'exécution ;
– configurer la procédure de démarrage des
services.
2
Pr. RIDOUANI: Chapitre 2. Démarrage du système
Plan
0. Le processus de démarrage d'un système Linux
1. Processus init et niveau d'exécution
2. Gestion des services
3. Gestion des services sous Red Hat
4. Gestion des services sous Debian
5. Upstart
6. Systemd
7. Redémarrer et éteindre un système
3
Pr. RIDOUANI: Chapitre 2. Démarrage du système
0. Le processus de démarrage d'un système Linux
• Le démarrage du système implique quatre programmes lancés
successivement : le BIOS (Basic Input Output System), le chargeur de
démarrage, le noyau et le processus init.
• Le BIOS est le premier programme exécuté, il réside au niveau du ROM.
Il charge les 512 premiers octets, ces 512 octets constituent le secteur
d'amorçage ou le Master Boot Record (MBR).
• Le MBR contient plusieurs informations sur les partitions du disque. Il
inclut aussi le chargeur de démarrage (ou une partie du chargeur de
démarrage). Le chargeur de démarrage Grub (Grand Unified
Bootloader) est utilisé sur la plupart des distributions Linux. Il est
décomposé en deux parties. La première partie réside sur le MBR, elle
charge la deuxième partie qui se trouve dans une partition du disque.
Une fois que la deuxième partie du Grub est chargée, une interface est
affichée permettant à l'utilisateur de choisir quel système d'exploitation
démarrer.
• Le chargeur de démarrage exécute le noyau. Ce dernier continue le
démarrage de la machine, il détecte et initialise les périphériques,
monte la partition racine et démarre le processus init.
4
Pr. RIDOUANI: Chapitre 2. Démarrage du système
0. Le processus de démarrage d'un système Linux
5
Pr. RIDOUANI: Chapitre 2. Démarrage du système
1. Processus init et niveau d'exécution
• Le processus init est le premier processus utilisateur créé par le
noyau lors du démarrage du système (son PID=1). Il consulte le
fichier /etc/inittab pour décider quel niveau d'exécution
démarrer. Les niveaux d'exécution pour la distribution Red Hat et
ses dérivés sont :
– 0 - Arrêt
– 1- Mode mono-utilisateur ou maintenance
– 2 - mode console, multi-utilisateurs, sans le support réseau
– 3 - mode multi-utilisateurs avec le support réseau
– 4 - Inutilisé
– 5 - X11 -> mode multi-utilisateurs avec interface graphique
– 6 - Redémarrage
• Sur la distribution Debian et ses dérivés les niveaux d'exécution
de 2 à 5 sont tous en mode multi-utilisateurs. 6
Pr. RIDOUANI: Chapitre 2. Démarrage du système
1. Processus init et niveau d'exécution
7
Pr. RIDOUANI: Chapitre 2. Démarrage du système
1. Processus init et niveau d'exécution
• Runlevel (les niveaux d’exécution)
Lorsque votre système Linux démarre, vous apercevez (en appuyant sur la touche <ESC> afin de voir la
version « verbeuse » du démarrage) divers services qui sont chargés. Ce sont les programmes du niveau
d'exécution sur lequel votre système fonctionne qui sont chargés à partir du répertoire représentant le
niveau d'exécution du système.
• Les répertoires des niveaux d’exécution sont :
– Run level 0 – /etc/rc.d/rc0.d/
– Run level 1 – /etc/rc.d/rc1.d/
– Run level 2 – /etc/rc.d/rc2.d/
– Run level 3 – /etc/rc.d/rc3.d/
– Run level 4 – /etc/rc.d/rc4.d/
– Run level 5 – /etc/rc.d/rc5.d/
– Run level 6 – /etc/rc.d/rc6.d/
• Dans ces répertoires, on retrouve des noms de programme qui commencent par la lettre S et K.
• Ceux qui commencent par la lettre S sont exécutés au démarrage du système (la lettre S pour « startup »
= démarrage).
• Ceux qui commencent par la lettre K sont exécutés à l'arrêt du système (la lettre K pour « kill » = arrêt).
• De plus, dans le nom de ces programmes, il y a un chiffre après la lettre S ou K. Ce chiffre indique l'ordre
d'exécution de chaque programme lors du démarrage ou de l'arrêt du système. Par exemple, S12syslog
est le 12e programme qui s'exécutera au démarrage du système.
• Les commandes init et telinit permettent de changer de niveau d'exécution.
• EXEMPLE : Pour basculer du niveau d'exécution courant vers le niveau d'exécution 1 :
# telinit 1 ou init 1
Pour vérifier le niveau d’exécution courant : runlevel ou who -r
8
Pr. RIDOUANI: Chapitre 2. Démarrage du système
1. Processus init et niveau d'exécution
Les scripts utlisé par init pour controler les Runlevels
• Après le chargement du noyau, le script correspondant à sysinit
dans fichier inittab est chargé :
- Sous Red Hat: si::sysinit:/ etc/rc.d/rc.sysinit
- Sous Debian : si::sysinit:/e tc/init.d/rcS
- Rôle :
–Configuration des paramètres du noyau présents dans /etc/sysctl.conf
–Configuration de l’horloge du système.
–Chargement des tables de caractères du clavier.
–Activation des partitions d’échange SWAP.
–Définition du nom d’hôte.
–Contrôle et montage du système de fichiers racine (en lecture-écriture cette
fois).
–Contrôle et montage des autres systèmes de fichiers.
• Le fichier rc exécute les scripts du répertoire rcN.d où N correspond au
niveau d'exécution
• Le script rc.local est exécuté par la commande /sbin/init au démarrage
ou lors de la modification des niveaux d'exécution
9
Pr. RIDOUANI: Chapitre 2. Démarrage du système
2. Gestion des services
• Les niveaux d'exécution sont utilisés par le système lors du
démarrage pour savoir quels services démarrer et quels services
arrêter.
• Par exemple les fichiers dans le répertoire /etc/rcN.d sont des
liens symboliques vers des scripts stockés dans le répertoire
/etc/init.d. Ces scripts contiennent les procédures pour démarrer,
arrêter ou déterminer l’état de chaque service
– Tous les scripts préfixés par la lettre ‘K’ sont exécutés avec l’argument ‘stop’
– Tous les scripts préfixés par la lettre ‘S’ sont exécutés avec l’argument ‘start’
– ‘numéro’ détermine l’ordre d’exécution.
– Bien entendu les scripts ‘K’ sont exécutés avant les scripts ‘S’
– Par exemple le script ‘K15httpd’ est exécuté avant ‘K20nfs’ et le script ‘S08iptables’ est
exécuté avant ‘S55sshd’
lrwxrwxrwx. 1 root root 15 janv. 10 10:33 K15httpd -> ../init.d/httpd
lrwxrwxrwx. 1 root root 13 janv. 10 10:34 K20nfs -> ../init.d/nfs
lrwxrwxrwx. 1 root root 18 janv. 10 10:28 S08iptables -> ../init.d/iptables
lrwxrwxrwx. 1 root root 14 janv. 10 10:34 S55sshd -> ../init.d/sshd 10
Pr. RIDOUANI: Chapitre 2. Démarrage du système
2. Gestion des services
• Les services peuvent être lancés à partir des scripts du répertoire /etc/init.d.
Ces scripts peuvent être appelés avec différents arguments :
– start : pour démarrer le service ;
– stop : pour arrêter le service ;
– restart : pour arrêter puis redémarrer le service ;
– reload : pour envoyer un signal SIGHUP au processus du service en cours d'exécution. Ce
signal le force à relire ses fichiers de configuration ;
– status : indique si le service est en cours d'exécution.
• Démarrer/Arrêter le service httpd sous Redhat
– Service httpd {status/start/stop/restart/reload}
– /etc/init.d/httpd {status/start/stop/restart/reload}
• Démarrer/Arrêter le service apache2 sous Debian
– invoke-rc.d apache2 {status/start/stop/restart/reload}
– /etc/init.d/apache2 {status/start/stop/restart/reload}
11
Pr. RIDOUANI: Chapitre 2. Démarrage du système
3. Gestion des services sous Red Hat
• Le programme /etc/rc.d/rc exécutant tous les scripts présents dans le
répertoire du runlevel, il suffira d’ajouter un lien dans le répertoire vers le
script adéquat pour lancer ou arrêter un service lorsque le système entre dans
ce niveau d’exécution.
• Il existe des outils en ligne de commandes ou avec une interface graphique qui
permettent l’ajout et la suppression de services au démarrage
• Sous Redhat et ses dérivés on utilise la commande chkconfig pour gérer un
service et maintenir les liens symboliques vers les scripts de démarrage dans
les répertoires /etc/rcN.d
• Il faut les deux lignes suivantes au début de chaque script.
# chkconfig: [niveau_exécution] [num_start] [num_kill]
# description: [descriptif du script]
• Exemple:
# chkconfig: 2345 10 90
# description: Commentaires libres
12
Pr. RIDOUANI: Chapitre 2. Démarrage du système
3. Gestion des services sous Red Hat
• Gérer et visualiser l’état d’un service
Syntaxe de la commande chkconfig
chkconfig [--options] [service]
chkconfig [--level niveaux] service on|off
13
Pr. RIDOUANI: Chapitre 2. Démarrage du système
Option longue Description
--list Visualise l’état des services (--list seul liste tous les services créés).
--add Crée des liens symboliques.
--del Supprime des liens symboliques.
--level Modifie les liens symboliques.
4. Gestion des services sous Debian
• Sous Debian et ses dérivés on utilise la commande update-rc.d pour gérer un
service et maintenir les liens symboliques vers les scripts de démarrage dans
les répertoires /etc/rcN.d
• Gérer et visualiser l’état d’un service
Syntaxe de la commande update-rc.d
update-rc.d nom_service { start | stop } numéro_sequence numéros_niveaux_execution .
update-rc.d nom_service { enable | disable | defaults | remove }
14
Pr. RIDOUANI: Chapitre 2. Démarrage du système
Option longue Description
enable pour activer le service
disable pour désactiver le service
remove pour enlever le démarrage automatique du service
defaults Pour re-activer le démarrage automatique du service
5. Upstart
• Plusieurs distributions Linux récentes, y compris les dernières versions d'Ubuntu
et de Fedora, ont remplacé le système classique init d’UNIX système V, SysV init,
basé sur les niveaux d'exécution, par un nouveau système Upstart. Upstart est
un système de gestion de services fonctionnant avec les événements. Il supervise
les services pendant que le système fonctionne. Ainsi il démarre ou arrête des
services en réponse aux événements tels que l'ajout d'un périphérique.
• Pour un besoin de compatibilité, il émule également les niveaux d'exécution
traditionnels de init.
• Un système qui utilise Upstart remplace à la fois le fichier /etc/inittab et les
répertoires spécifiques des niveaux d'exécution par les scripts placés dans le
répertoire /etc/init (ce répertoire a été appelé /etc/event.d sur des versions
antérieures d'Upstart).
15
Pr. RIDOUANI: Chapitre 2. Démarrage du système
6. Systemd
• systemd est une alternative au démon init de System V. Il est spécifiquement
conçu pour le noyau Linux. Il a pour but d’offrir un meilleur cadre pour la gestion
des dépendances entre services, de permettre le chargement en parallèle des
services au démarrage, et de réduire les appels aux scripts shell.
• Gérer et visualiser l’état d’un service
Syntaxe de la commande systemctl
systemctl status unit
systemctl enable | disable unit
systemctl start | stop | restart | reload unit
16
Pr. RIDOUANI: Chapitre 2. Démarrage du système
7. Redémarrer et éteindre un système
17
Pr. RIDOUANI: Chapitre 2. Démarrage du système
Redémarrer le système Arrêter le système Eteindre le système
systemctl reboot
shutdown -r now
Reboot
init 6
systemctl halt
shutdown -h now
halt
init 0
systemctl poweroff
poweroff

Contenu connexe

Similaire à Chapitre2-startup.pdf

Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
Med Ali Bhs
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
Khalid ALLILI
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
EL AMRI El Hassan
 
Configuration des services web sous centOS 5
Configuration des services web sous centOS 5Configuration des services web sous centOS 5
Configuration des services web sous centOS 5
Sarah
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
Christian Charreyre
 
2020 (1)
2020 (1)2020 (1)
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
Thierry Gayet
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
Mohamed Ben Bouzid
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
Ines Ben Hassine
 
Compilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesCompilation noyau linux depuis les sources
Compilation noyau linux depuis les sources
Thierry Gayet
 
JBoss clustering et tuning (lab 2/3)
JBoss clustering et tuning (lab 2/3)JBoss clustering et tuning (lab 2/3)
JBoss clustering et tuning (lab 2/3)
Fourat Zouari
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
Amir Souissi
 
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
ronanlebalch
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
Christian Charreyre
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
Khalid ALLILI
 
Configuration routeurs.pptx
Configuration routeurs.pptxConfiguration routeurs.pptx
Configuration routeurs.pptx
ZinaAknouche1
 
Jenkins
JenkinsJenkins

Similaire à Chapitre2-startup.pdf (20)

Snort implementation
Snort implementationSnort implementation
Snort implementation
 
Chapitre 4 Linux
Chapitre 4 LinuxChapitre 4 Linux
Chapitre 4 Linux
 
Cisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracerCisco et-le-simulateur-packet-tracer
Cisco et-le-simulateur-packet-tracer
 
Mysql Apche PHP sous linux
Mysql Apche PHP sous linuxMysql Apche PHP sous linux
Mysql Apche PHP sous linux
 
Maintenance du système Linux
Maintenance du système LinuxMaintenance du système Linux
Maintenance du système Linux
 
Configuration des services web sous centOS 5
Configuration des services web sous centOS 5Configuration des services web sous centOS 5
Configuration des services web sous centOS 5
 
Meetup Systemd vs sysvinit
Meetup Systemd vs sysvinitMeetup Systemd vs sysvinit
Meetup Systemd vs sysvinit
 
2020 (1)
2020 (1)2020 (1)
2020 (1)
 
utilisation des core dump sous linux
utilisation des core dump sous linuxutilisation des core dump sous linux
utilisation des core dump sous linux
 
Installation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey SpiderInstallation Et Configuration De Monkey Spider
Installation Et Configuration De Monkey Spider
 
TD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdfTD_complet_reseau__CISCO__Packet Tracer.pdf
TD_complet_reseau__CISCO__Packet Tracer.pdf
 
Compilation noyau linux depuis les sources
Compilation noyau linux depuis les sourcesCompilation noyau linux depuis les sources
Compilation noyau linux depuis les sources
 
JBoss clustering et tuning (lab 2/3)
JBoss clustering et tuning (lab 2/3)JBoss clustering et tuning (lab 2/3)
JBoss clustering et tuning (lab 2/3)
 
Tp n 5 linux
Tp n 5 linuxTp n 5 linux
Tp n 5 linux
 
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
04 2 procédure de configuration du routeur linux ubuntu server 14.04 de nom r...
 
Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015Linux et le temps réel - Meetup du 15 octobre 2015
Linux et le temps réel - Meetup du 15 octobre 2015
 
PostgreSQL sous linux
PostgreSQL sous linuxPostgreSQL sous linux
PostgreSQL sous linux
 
Configuration routeurs.pptx
Configuration routeurs.pptxConfiguration routeurs.pptx
Configuration routeurs.pptx
 
Config ip
Config ipConfig ip
Config ip
 
Jenkins
JenkinsJenkins
Jenkins
 

Chapitre2-startup.pdf

  • 1. Chapitre 2. Démarrage du système Prof. M. RIDOUANI Administration avancée des systèmes et réseaux sous Linux
  • 2. Objectifs • Personnalisation du processus de démarrage système – interroger et modifier le comportement des services systèmes dans différents niveaux d'exécution ; – configurer la procédure de démarrage des services. 2 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 3. Plan 0. Le processus de démarrage d'un système Linux 1. Processus init et niveau d'exécution 2. Gestion des services 3. Gestion des services sous Red Hat 4. Gestion des services sous Debian 5. Upstart 6. Systemd 7. Redémarrer et éteindre un système 3 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 4. 0. Le processus de démarrage d'un système Linux • Le démarrage du système implique quatre programmes lancés successivement : le BIOS (Basic Input Output System), le chargeur de démarrage, le noyau et le processus init. • Le BIOS est le premier programme exécuté, il réside au niveau du ROM. Il charge les 512 premiers octets, ces 512 octets constituent le secteur d'amorçage ou le Master Boot Record (MBR). • Le MBR contient plusieurs informations sur les partitions du disque. Il inclut aussi le chargeur de démarrage (ou une partie du chargeur de démarrage). Le chargeur de démarrage Grub (Grand Unified Bootloader) est utilisé sur la plupart des distributions Linux. Il est décomposé en deux parties. La première partie réside sur le MBR, elle charge la deuxième partie qui se trouve dans une partition du disque. Une fois que la deuxième partie du Grub est chargée, une interface est affichée permettant à l'utilisateur de choisir quel système d'exploitation démarrer. • Le chargeur de démarrage exécute le noyau. Ce dernier continue le démarrage de la machine, il détecte et initialise les périphériques, monte la partition racine et démarre le processus init. 4 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 5. 0. Le processus de démarrage d'un système Linux 5 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 6. 1. Processus init et niveau d'exécution • Le processus init est le premier processus utilisateur créé par le noyau lors du démarrage du système (son PID=1). Il consulte le fichier /etc/inittab pour décider quel niveau d'exécution démarrer. Les niveaux d'exécution pour la distribution Red Hat et ses dérivés sont : – 0 - Arrêt – 1- Mode mono-utilisateur ou maintenance – 2 - mode console, multi-utilisateurs, sans le support réseau – 3 - mode multi-utilisateurs avec le support réseau – 4 - Inutilisé – 5 - X11 -> mode multi-utilisateurs avec interface graphique – 6 - Redémarrage • Sur la distribution Debian et ses dérivés les niveaux d'exécution de 2 à 5 sont tous en mode multi-utilisateurs. 6 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 7. 1. Processus init et niveau d'exécution 7 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 8. 1. Processus init et niveau d'exécution • Runlevel (les niveaux d’exécution) Lorsque votre système Linux démarre, vous apercevez (en appuyant sur la touche <ESC> afin de voir la version « verbeuse » du démarrage) divers services qui sont chargés. Ce sont les programmes du niveau d'exécution sur lequel votre système fonctionne qui sont chargés à partir du répertoire représentant le niveau d'exécution du système. • Les répertoires des niveaux d’exécution sont : – Run level 0 – /etc/rc.d/rc0.d/ – Run level 1 – /etc/rc.d/rc1.d/ – Run level 2 – /etc/rc.d/rc2.d/ – Run level 3 – /etc/rc.d/rc3.d/ – Run level 4 – /etc/rc.d/rc4.d/ – Run level 5 – /etc/rc.d/rc5.d/ – Run level 6 – /etc/rc.d/rc6.d/ • Dans ces répertoires, on retrouve des noms de programme qui commencent par la lettre S et K. • Ceux qui commencent par la lettre S sont exécutés au démarrage du système (la lettre S pour « startup » = démarrage). • Ceux qui commencent par la lettre K sont exécutés à l'arrêt du système (la lettre K pour « kill » = arrêt). • De plus, dans le nom de ces programmes, il y a un chiffre après la lettre S ou K. Ce chiffre indique l'ordre d'exécution de chaque programme lors du démarrage ou de l'arrêt du système. Par exemple, S12syslog est le 12e programme qui s'exécutera au démarrage du système. • Les commandes init et telinit permettent de changer de niveau d'exécution. • EXEMPLE : Pour basculer du niveau d'exécution courant vers le niveau d'exécution 1 : # telinit 1 ou init 1 Pour vérifier le niveau d’exécution courant : runlevel ou who -r 8 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 9. 1. Processus init et niveau d'exécution Les scripts utlisé par init pour controler les Runlevels • Après le chargement du noyau, le script correspondant à sysinit dans fichier inittab est chargé : - Sous Red Hat: si::sysinit:/ etc/rc.d/rc.sysinit - Sous Debian : si::sysinit:/e tc/init.d/rcS - Rôle : –Configuration des paramètres du noyau présents dans /etc/sysctl.conf –Configuration de l’horloge du système. –Chargement des tables de caractères du clavier. –Activation des partitions d’échange SWAP. –Définition du nom d’hôte. –Contrôle et montage du système de fichiers racine (en lecture-écriture cette fois). –Contrôle et montage des autres systèmes de fichiers. • Le fichier rc exécute les scripts du répertoire rcN.d où N correspond au niveau d'exécution • Le script rc.local est exécuté par la commande /sbin/init au démarrage ou lors de la modification des niveaux d'exécution 9 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 10. 2. Gestion des services • Les niveaux d'exécution sont utilisés par le système lors du démarrage pour savoir quels services démarrer et quels services arrêter. • Par exemple les fichiers dans le répertoire /etc/rcN.d sont des liens symboliques vers des scripts stockés dans le répertoire /etc/init.d. Ces scripts contiennent les procédures pour démarrer, arrêter ou déterminer l’état de chaque service – Tous les scripts préfixés par la lettre ‘K’ sont exécutés avec l’argument ‘stop’ – Tous les scripts préfixés par la lettre ‘S’ sont exécutés avec l’argument ‘start’ – ‘numéro’ détermine l’ordre d’exécution. – Bien entendu les scripts ‘K’ sont exécutés avant les scripts ‘S’ – Par exemple le script ‘K15httpd’ est exécuté avant ‘K20nfs’ et le script ‘S08iptables’ est exécuté avant ‘S55sshd’ lrwxrwxrwx. 1 root root 15 janv. 10 10:33 K15httpd -> ../init.d/httpd lrwxrwxrwx. 1 root root 13 janv. 10 10:34 K20nfs -> ../init.d/nfs lrwxrwxrwx. 1 root root 18 janv. 10 10:28 S08iptables -> ../init.d/iptables lrwxrwxrwx. 1 root root 14 janv. 10 10:34 S55sshd -> ../init.d/sshd 10 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 11. 2. Gestion des services • Les services peuvent être lancés à partir des scripts du répertoire /etc/init.d. Ces scripts peuvent être appelés avec différents arguments : – start : pour démarrer le service ; – stop : pour arrêter le service ; – restart : pour arrêter puis redémarrer le service ; – reload : pour envoyer un signal SIGHUP au processus du service en cours d'exécution. Ce signal le force à relire ses fichiers de configuration ; – status : indique si le service est en cours d'exécution. • Démarrer/Arrêter le service httpd sous Redhat – Service httpd {status/start/stop/restart/reload} – /etc/init.d/httpd {status/start/stop/restart/reload} • Démarrer/Arrêter le service apache2 sous Debian – invoke-rc.d apache2 {status/start/stop/restart/reload} – /etc/init.d/apache2 {status/start/stop/restart/reload} 11 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 12. 3. Gestion des services sous Red Hat • Le programme /etc/rc.d/rc exécutant tous les scripts présents dans le répertoire du runlevel, il suffira d’ajouter un lien dans le répertoire vers le script adéquat pour lancer ou arrêter un service lorsque le système entre dans ce niveau d’exécution. • Il existe des outils en ligne de commandes ou avec une interface graphique qui permettent l’ajout et la suppression de services au démarrage • Sous Redhat et ses dérivés on utilise la commande chkconfig pour gérer un service et maintenir les liens symboliques vers les scripts de démarrage dans les répertoires /etc/rcN.d • Il faut les deux lignes suivantes au début de chaque script. # chkconfig: [niveau_exécution] [num_start] [num_kill] # description: [descriptif du script] • Exemple: # chkconfig: 2345 10 90 # description: Commentaires libres 12 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 13. 3. Gestion des services sous Red Hat • Gérer et visualiser l’état d’un service Syntaxe de la commande chkconfig chkconfig [--options] [service] chkconfig [--level niveaux] service on|off 13 Pr. RIDOUANI: Chapitre 2. Démarrage du système Option longue Description --list Visualise l’état des services (--list seul liste tous les services créés). --add Crée des liens symboliques. --del Supprime des liens symboliques. --level Modifie les liens symboliques.
  • 14. 4. Gestion des services sous Debian • Sous Debian et ses dérivés on utilise la commande update-rc.d pour gérer un service et maintenir les liens symboliques vers les scripts de démarrage dans les répertoires /etc/rcN.d • Gérer et visualiser l’état d’un service Syntaxe de la commande update-rc.d update-rc.d nom_service { start | stop } numéro_sequence numéros_niveaux_execution . update-rc.d nom_service { enable | disable | defaults | remove } 14 Pr. RIDOUANI: Chapitre 2. Démarrage du système Option longue Description enable pour activer le service disable pour désactiver le service remove pour enlever le démarrage automatique du service defaults Pour re-activer le démarrage automatique du service
  • 15. 5. Upstart • Plusieurs distributions Linux récentes, y compris les dernières versions d'Ubuntu et de Fedora, ont remplacé le système classique init d’UNIX système V, SysV init, basé sur les niveaux d'exécution, par un nouveau système Upstart. Upstart est un système de gestion de services fonctionnant avec les événements. Il supervise les services pendant que le système fonctionne. Ainsi il démarre ou arrête des services en réponse aux événements tels que l'ajout d'un périphérique. • Pour un besoin de compatibilité, il émule également les niveaux d'exécution traditionnels de init. • Un système qui utilise Upstart remplace à la fois le fichier /etc/inittab et les répertoires spécifiques des niveaux d'exécution par les scripts placés dans le répertoire /etc/init (ce répertoire a été appelé /etc/event.d sur des versions antérieures d'Upstart). 15 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 16. 6. Systemd • systemd est une alternative au démon init de System V. Il est spécifiquement conçu pour le noyau Linux. Il a pour but d’offrir un meilleur cadre pour la gestion des dépendances entre services, de permettre le chargement en parallèle des services au démarrage, et de réduire les appels aux scripts shell. • Gérer et visualiser l’état d’un service Syntaxe de la commande systemctl systemctl status unit systemctl enable | disable unit systemctl start | stop | restart | reload unit 16 Pr. RIDOUANI: Chapitre 2. Démarrage du système
  • 17. 7. Redémarrer et éteindre un système 17 Pr. RIDOUANI: Chapitre 2. Démarrage du système Redémarrer le système Arrêter le système Eteindre le système systemctl reboot shutdown -r now Reboot init 6 systemctl halt shutdown -h now halt init 0 systemctl poweroff poweroff