Tutoriel Processus Init et Niveaux d'Exécution Linux

Telechargé par mahmoudbardi
Leprocessusinitetlesniveauxd
’
exécution
1.Lesniveauxd
’
exécution
Lefonctionnementd
’
unsystèmeLinuxestrégipardesniveauxd
’
exécution.Mêmesiceconceptapparaîtdavantage
aujourd
’
hui comme un héritage du passé que comme un réel outil d
’
administration d
’
un poste de travail ou d
’
un
serveurLinux,saconnaissanceestindispensableàunebonnegestiondusystème.
Toutd
’
abord,ilfautadmettrequ
’
unsystèmeLinuxesttoujoursdansunniveaud
’
exécutionquelquesoitsonactivité,
qu
’
ils
’
agissed
’
unserveurapacheentrainderépondreàunerequête,oud
’
unserveurneufencoredanssoncarton.
Lagestiondesniveauxd
’
exécutionconsisteraàdéterminerqueldoitêtrelecomportementdusystèmequandilentre
dansunniveaudonné.
a.Qu
’
estcequ
’
unniveaud
’
exécution?
Pourfairesimple,unniveaud
’
exécutionestunniveaufonctionneldanslequelonauradéterminélalistedesservices
à arrêter ou à démarrer. Quand un système entre dans un niveau d
’
exécution, il regarde s
’
il doit arrêter et/ou
démarrerdesservices.
b.Lesniveauxd
’
exécutionpossibles
Leplussimple:lesystèmeestarrêté.Attention,celanesignifiepasqueceniveaunedoitpasêtreconfiguré,ilfaut
toutdemêmegérercequisepassequandlesystèmeentreenniveau0,c
’
estàdirequelssontlesservicesà
arrêterquandonéteintphysiquementunemachine.
Unniveauunpeuparticulier:ilestréservéauxopérationsdemaintenanceetnepermetqu
’
uneseuleconnexion,
celleducompteroot.Deplus,laplupartdesservicessontarrêtésdansceniveau,cequisignifiequelesystèmea
uneactivitéminimum.C
’
estparfaitpourl
’
administrateurquisouhaiteeffectuerdesopérationsdemaintenancesans
interféreraveclaproduction.
Surlaplupartdessystèmes,ceniveaun
’
estpasutilisé.Ilestlaisséàladispositiondel
’
administrateurquipourra
établiràpartirdeceniveauunmodedefonctionnementparticulieravecseulementcertainsservicesdémarrés.
Sur les systèmes Debian et dérivés (Ubuntu par exemple), ce niveau est en revanche le niveau fonctionnel par
défaut.
Sur la plupart des systèmes, le niveau 3 est fonctionnel, c
’
est
à
dire que tous les services sont démarrés, mais
l
’
interfacegraphiquen
’
estpasdisponible.
Surlaplupartdessystèmes,ceniveaun
’
estpasutilisé.Ilestlaisséàladispositiondel
’
administrateurquipourra
établiràpartirdeceniveauunmodedefonctionnementparticulieravecseulementcertainsservicesdémarrés.
Sur la plupart des systèmes, le niveau 5 est fonctionnel, c
’
est
à
dire que tous les services sont démarrés, et
l
’
interfacegraphiqueestdisponible.
SurlessystèmesDebianetdérivés(Ubuntuparexemple),ceniveaun
’
estpasutiliséengénéral.
Temporairepardéfinition,leniveau6estceluid
’
unsystèmeentrainderedémarrer.Laconfigurationduniveau6
consisteradoncàdéterminerquelsservicesdoiventêtrearrêtésauredémarragedusystème.Aprèsleredémarrage,
unnouveauniveaud
’
exécutions
’
appliquera(engénéralleniveaupardéfaut)etlesservicesassociésàceniveau
serontdémarrés.
Leniveau0
Leniveau1ousingle
Leniveau2
Leniveau3
Leniveau4
Leniveau5
Leniveau6
- 1 -© ENI Editions - All rights reserved - Frédéric Hendrickx
enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAABENTM5MjYwIC0gRnLDqWTDqXJpYyBIZW5kcmlja3ggLSBiN2RmODljNC00NzEyLTQ1NDQtYTZiYS0zZGY5NjMzN2I3ZWIOkmaNw7DOiAsA-enidentnumber
c.Quidécidedecequ
’
onmetdanslesdifférentsniveaux?
Dansl
’
immensemajoritédescas,c
’
estladéfinitioninitialedesniveauxd
’
exécutionquiestexploitée.C
’
est
à
direque
legestionnairedeladistribution(Ubuntu,Mandriva,RedHat,etc.)choisitcequidoitsepasserdanschacundes
niveauxd
’
exécutiondonné,etl
’
administrateurdusystèmefaitavec.
Toutefois,il peutarriver quel
’
administrateurdu systèmepréfère gérerlui mêmela configurationde sesniveaux
d
’
exécution.Ilpeutalorschoisiràquelniveaufonctionnelcorrespondchacundesniveauxd
’
exécutionetquelssont
lesservicesassociés.Àchaqueniveaud
’
exécutioncorrespondalorsunensembledeservices.
2.Configurationduprocessusinit
Nousavonsparléjusqu
’
àprésentdesniveauxd
’
exécutioncommed
’
unelistedeservicesàarrêteroudémarrer.La
questionestmaintenantdesavoircommentlesystèmevaprendreconnaissancedesonniveaud
’
exécutionetdes
servicesquiysontréférencés.
a.Lepremierprocessusdémarrésurlesystème
Sionregardequelssontlesprocessuss
’
exécutantsurlesystème,ontrouveenpremièrepositionleprocessusinit.
IlporteunPPIDinhabituel(0),etilestlepèredenombreuxautresprocessus.
Lesprocessus
Denombreuxprocessusontlenuméro1commePPID.
[root@beta ~]# ps -ef | head
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:07 ? 00:00:12 init [5]
root 2 1 0 09:07 ? 00:00:00 [migration/0]
root 3 1 0 09:07 ? 00:00:00 [ksoftirqd/0]
root 4 1 0 09:07 ? 00:00:00 [watchdog/0]
root 5 1 0 09:07 ? 00:00:09 [events/0]
root 6 1 0 09:07 ? 00:00:00 [khelper]
root 7 1 0 09:07 ? 00:00:00 [kthread]
root 10 7 0 09:07 ? 00:00:04 [kblockd/0]
root 11 7 0 09:07 ? 00:00:00 [kacpid]
[root@beta ~]#
Ceprocessusestlepremierlancéauchargementdunoyau.Ilaévidemmentunrôleprivilégié,etsoncomportement
estrégiparunfichierdeconfiguration:
/etc/inittab
.
b.Lefichierinittab
Selonlesdistributions,lefichier
/etc/inittab
revêtdescontenustrèsdifférents,maissastructureesttoujoursla
même.
Structuredufichier/etc/inittab
identifiant:niveau:mode_action:commande
Fichier/etc/inittab:structured
’
unelignededéfinition
identifiant
Chaînealphanumériqued
’
unoudeuxcaractères.Identifielaligne.Pasd
’
autres
contraintesqued
’
éviterd
’
avoirdeuxlignesaveclemêmeidentifiant.
niveau
Leoulesniveauxd
’
exécution(enchiffres)pourlesquelslaligneestpertinente.
mode_action
Àchoisirparmiquelquesmots
clés,définitlafaçondontlacommandeduquatrième
champseraexécutée.
commande
Lacommandeàexécuterau(x)niveau(x)défini(s)dansledeuxièmechampselonle
- 2 - © ENI Editions - All rights reserved - Frédéric Hendrickx
enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAABENTM5MjYwIC0gRnLDqWTDqXJpYyBIZW5kcmlja3ggLSBiN2RmODljNC00NzEyLTQ1NDQtYTZiYS0zZGY5NjMzN2I3ZWIOkmaNw7DOiAsA-enidentnumber
Modesd
’
actionscourants
●
initdefault
:unpeuparticulier,initdefaultnerégitpaslafaçondontlacommandeduquatrièmechampsera
exécutée.D
’
ailleurs,quandlemoded
’
actionestinitdefault,lequatrièmechampestvide.initdefaultnesert
enfaitqu
’
àdéfinirleniveaud
’
exécutiondusystèmepardéfaut.
●
sysinit
:sertà exécuterdesscriptsàl
’
initialisationdusystème,indépendammentduniveaud
’
exécution.
Pourcetteraison,sysinitn
’
admetpasdevaleurpourledeuxièmechamp.
●wait:exécutelacommandeduquatrièmechamp(souventunscript),etattendlafindecetteexécutionpour
passerauxlignessuivantesdufichierinittab.
●respawn:exécutelacommandeduquatrièmechamp,etlaissetournerleprocessusàl
’
arrière
plan.Passe
ensuite aux lignes suivantes du fichier inittab. Si le processus appelé par la commande s
’
arrête, init le
relancerasystématiquement.
Fichierinittabd
’
unedistributionRedHat
Lescommentairesontétésuppriméspourdesraisonsdelisibilité.
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"
1:2345:respawn:/sbin/mingetty tty1
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
x:5:respawn:/etc/X11/prefdm -nodaemon
c.Rappelssurlelancementdesservices
SurunsystèmeLinux,lesservicessontlancéspardesscriptsnormalisésquirépondentàaumoinsdeuxconditions:
●Ilssetrouventtousdanslerépertoire
/etc/init.d
(ousontdisponiblesàcetemplacementsousformedelien
symbolique).
●Ilsadmettenttouslesparamètres
start
et
stop
pourlelancementetl
’
arrêtduservice.
Syntaxeuniverselledegestiondeservice
/etc/init.d/ nom action
Gestiondeservicesaveclacommandeservice
service nom action
moded
’
actiondutroisièmechamp.
Gestiondeservice :paramètres
nom
Lenomduserviceàgérer.
- 3 -© ENI Editions - All rights reserved - Frédéric Hendrickx
enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAABENTM5MjYwIC0gRnLDqWTDqXJpYyBIZW5kcmlja3ggLSBiN2RmODljNC00NzEyLTQ1NDQtYTZiYS0zZGY5NjMzN2I3ZWIOkmaNw7DOiAsA-enidentnumber
Lacommandeservice,quandelleestdisponible,peutêtreconsidéréecommepréférablecarellelanceleserviceen
s
’
affranchissantautantquepossibledel
’
environnementambiant(pwdetvariables).Leserviceestainsidémarré
dansunenvironnementplusneutre.
Formatstandardd
’
unscriptdegestiondeservice
#!/bin/bash
case $1 in
start)
# commande de lancement du service
;;
stop)
# commande d ’arrêt du service
;;
esac
d.Liensentrelesniveauxd
’
exécutionetlesservices
Sionregardelefichier
/etc/inittab
,ontrouveunesectioncontenant7lignescommandantpourchacundesniveaux
d
’
exécutionunscript
/etc/init.d/rc
enmodewait.Nousnedétailleronspaslefonctionnementdecescriptici,mais
retenonssimplementqu
’
ilcommandel
’
exécutiondechaquefichierdurépertoire
/etc/rc
n
.d
(nétantlenumérodu
niveaud
’
exécution)avecleparamètre
start
silapremièrelettredunomdufichierestunS,etavecleparamètre
stop
silapremièrelettredunomdufichierestun
K
.Chacundesfichiersde
/etc/rc
n
.d
estunliensymboliquevers
unscriptdelancementdeservicede
/etc/init.d
etcetteconstructionpermetdedirequelsservicesdoiventêtre
démarrésouarrêtéspourchacundesniveauxd
’
exécution.
Selonlesdistributions,ilsepeutquelesscriptsrcetlesrépertoiresrcn.dsoientplacésàdesemplacements
différents. La cohérence est assurée par la bonne gestion des chemins dans les scripts systèmes et la
créationdelienssymboliquesquandc
’
estnécessaire.
Ceslienspeuventêtrecréésmanuellementaveclacommande
ln
.
Créationdeliensdegestiondeservicesaveclacommandeln
Cesliensdoiventêtrecrééspourchacundesniveauxd
’
exécutionspossibles.
cd /etc/rcx.d
ln -s ../init.d/ service Cnnservice
e.Gestiondesniveauxd
’
exécution
Lacommanderunlevelindiqueleniveaud
’
exécutionencours.
Affichageduniveaud
’
exécution
runlevel
action
start
ou
stop
pourdémarrerouarrêterleservice.
status
estaussiuneoptioncouramment
supportéequiindiquel
’
étatduservice.
Liendelancementdeservices :paramètres
x
Leniveaud
’
exécutionpourlequelonveutgérerledémarrageoul
’
arrêtduservice.
C
Commutateurdedémarrage(S)oud
’
arrêt(K).
nn
Numérod
’
ordreàdeuxchiffres.Lescriptseragéréplusoumoinstôtparrapportauxautresdu
mêmeservice.
service
Nomduserviceàgérer.
- 4 - © ENI Editions - All rights reserved - Frédéric Hendrickx
enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAABENTM5MjYwIC0gRnLDqWTDqXJpYyBIZW5kcmlja3ggLSBiN2RmODljNC00NzEyLTQ1NDQtYTZiYS0zZGY5NjMzN2I3ZWIOkmaNw7DOiAsA-enidentnumber
Lacommande
telinit
permetdechangeràchaudleniveaud
’
exécutiond
’
unsystème.
Changementdeniveaud
’
exécution
telinit niveau
Oùniveaureprésenteleniveaud
’
exécutiondanslequelonsouhaiteplacerlesystème.
Gestionduniveaud
’
exécution
Lechangementàchauddeniveaud
’
exécutionnedevraitêtreréaliséquesurunsystèmedontonconnaîtlaconfiguration.
alpha:~# runlevel
N 2
alpha:~# telinit 3
alpha:~#
alpha:~# runlevel
N 3
alpha:~#
Ponctuellement,leniveaud
’
exécutionàchargerpeutaussiêtrefourniaunoyauentantqueparamètrelors
de son chargement. Le choix du niveau d
’
exécution peut donc aussi se faire depuis le gestionnaire de
démarrageenplaçantsimplementleniveausouhaitésurlalignedechargementdunoyau.
f.Commandesdegestionsdesliensdeservices
Lescommandes
update
rc.d
et
chkconfig
permettentdes
’
affranchirdelagestioncontraignantedesliensd
’
appels
deservicesselonlesniveauxd
’
exécution.Lesdeuxcommandesnesontpasdisponiblessurtouslessystèmes,etil
se peut même que la création manuelle de liens soit la seule solution fonctionnelle. Dans tous les cas, il est
pédagogiquement intéressant de vérifier l
’
action de ces commandes sur les liens en place dans les
répertoires
/etc/rc
n
.d
.
Créationdesliensdegestiondeservices
update-rc.d service defaults
chkconfig --add service
Oùservicereprésentelenomduserviceprésentdanslerépertoire
/etc/init.d
.Leparamètredefaultsimpliqueque
leserviceseradémarrédanslesniveauxfonctionnelspardéfaut,etarrêtédanslesniveauxnonfonctionnels(0pour
systèmearrêté,1pourlemodemaintenance,et6pourunemachineencoursderedémarrage).
Suppressiondesliensdegestiondeservices
update-rc.d service remove
chkconfig --del service
Vérificationdesétatsd
’
unserviceselonlesniveaux
chkconfig --list service
Exempled
’
utilisationdelacommandechkconfig
La commande chkconfig permet aussi bien la création de liens que la visualisation des services selon les niveaux
d
’
exécution.
[root@beta ~]# ls /etc/rc5.d/*nfs
ls: /etc/rc5.d/*nfs: No such file or directory
[root@beta ~]# chkconfig --add nfs
[root@beta ~]# ls /etc/rc5.d/*nfs
/etc/rc5.d/K20nfs
- 5 -© ENI Editions - All rights reserved - Frédéric Hendrickx
enidentnumber-AAEAAAD/////AQAAAAAAAAAMAgAAAE1FTkkuRWRpdGlvbnMuTUVESUFwbHVzLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAUBAAAAJ0VOSS5FZGl0aW9ucy5NRURJQXBsdXMuQ29tbW9uLldhdGVybWFyawIAAAAHcGlzVGV4dAlwaWR0ZURhdGUBAA0CAAAABgMAAABENTM5MjYwIC0gRnLDqWTDqXJpYyBIZW5kcmlja3ggLSBiN2RmODljNC00NzEyLTQ1NDQtYTZiYS0zZGY5NjMzN2I3ZWIOkmaNw7DOiAsA-enidentnumber
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!