0% ont trouvé ce document utile (0 vote)
42 vues26 pages

Gestion des processus et services UNIX

Le chapitre 5 aborde le système de gestion des processus et des services sous UNIX, en détaillant les types de processus, leur identification, et les états qu'ils peuvent traverser. Il présente également le système d'initialisation systemd, ses unités de service, et les commandes associées pour gérer ces services. Enfin, des commandes pour contrôler l'arrêt et le redémarrage du système sont également mentionnées.

Transféré par

chikhimedwassim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
42 vues26 pages

Gestion des processus et services UNIX

Le chapitre 5 aborde le système de gestion des processus et des services sous UNIX, en détaillant les types de processus, leur identification, et les états qu'ils peuvent traverser. Il présente également le système d'initialisation systemd, ses unités de service, et les commandes associées pour gérer ces services. Enfin, des commandes pour contrôler l'arrêt et le redémarrage du système sont également mentionnées.

Transféré par

chikhimedwassim
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Chapitre 5: Processus et services

Chérifa Boucetta

A.U: 2022-2023
Contenu

1. Le système de gestion de processus

2. Les services

2
Description et Objectifs

 UNIX est un système multi-tâches autorisant ainsi l'exécution de plusieurs tâches (ou

processus) à la fois.

 Deux types de processus :

 Les processus système: Ces processus ont comme propriétaire l'administrateur (root) ou un

UID d'administration. Ils assurent des tâches d'ordre général et ne sont généralement arrêter
qu'à l'arrêt du système.

 Les processus utilisateur : Ils correspondent à chaque exécution d'un programme par un

utilisateur. Le premier d'entre eux étant l'interpréteur de commande à la connexion.

3
Le processus
 Un processus représente à la fois un programme en cours d’exécution et tout son

environnement d’exécution (mémoire, état, identification, propriétaire, père...).

 Les données d’identification d’un processus :

1. Un numéro de processus unique PID (Process ID) : chaque processus Unix est numéroté afin de

pouvoir être différencié des autres.


 Le premier processus lancé par le système est 1 et il s’agit d’un processus appelé généralement init.

 On utilise le PID quand on travaille avec un processus. Lancer 10 fois le même programme (même nom) produit

10 PID différents.

2. Un numéro de processus parent PPID (Parent Process ID) : chaque processus peut lui-même

lancer d’autres processus, des processus enfants (child process). Chaque enfant reçoit parmi les
informations le PID du processus père qui l’a lancé.
 Tous les processus ont un PPID sauf le processus 0 qui est un pseudo-processus représentant le démarrage du
4
système (crée le 1 init).
Le processus (suite)
3. Un numéro d’utilisateur et un numéro de groupe : correspond à l’UID et au GID de l’utilisateur

qui a lancé le processus. C’est nécessaire pour que le système sache si le processus a le droit
d’accéder à certaines ressources ou non.
 Les processus enfants héritent de ces informations.

4. Durée de traitement et priorité : la durée de traitement correspond au temps d’exécution écoulé

depuis le dernier réveil du processus.


 Dans un environnement multitâche, le temps d’exécution est partagé entre les divers processus, et tous ne

possèdent pas la même priorité. Les processus de plus haute priorité sont traités en premier.

 C’est l’ordonnanceur de tâches du système qui gère les priorités et les temps d’exécution.

5
Le processus (suite)
5. Répertoire de travail actif : à son lancement, le répertoire courant (celui depuis lequel le

processus a été lancé) est transmis au processus. C’est ce répertoire qui servira de base pour les
chemins relatifs.

6. Fichiers ouverts : table des descripteurs des fichiers ouverts. Par défaut au début seuls trois

sont présents : 0, 1 et 2 (les canaux standards). À chaque ouverture de fichier ou de nouveau


canal, la table se remplit. À la fermeture du processus, les descripteurs sont fermés.

 On trouve d’autres informations comme la taille de la mémoire allouée, la date de lancement du

processus, le terminal d’attachement, l’état du processus, les UID effectif et réel ainsi que les GID
effectif et réel.

6
Etat d’un processus
 Durant sa vie (temps entre le lancement et la sortie) un processus peut passer par divers états

ou process state :
 exécution en mode utilisateur (user mode)

 exécution en mode noyau (kernel mode)

 en attente E/S (waiting)

 endormi (sleeping)

 prêt à l’exécution (runnable)

 endormi dans le swap (mémoire virtuelle)

 fin de processus (zombie)

 La liste de tous les processus avec leurs états peut être affichée avec la commande ps –el.

7
Processus-commandes

 Tous les processus ont un parent,


 Ils Définissent une arborescence de processus depuis le processus initial (init),
 Commandes pour les processus sont:

8
Background, foreground, jobs

 Il est possible de récupérer la main sous le shell si un processus est lancé au premier

plan. On peut le stopper temporairement en tapant [Ctrl] Z :

 Le processus est stoppé :

 son exécution est suspendue jusqu’à ce qu’il est placé au premier plan

avec la commande fg (foreground) :

9
Background, foreground, jobs
 Quand une commande est lancée, le premier nombre entre crochets présente le

numéro de job.
 C’est le même nombre qui apparaît quand une commande est lancée en arrière-plan. La

commande jobs donne la liste.

 Les commandes bg et fg permettent d’agir sur ces jobs en prenant comme paramètre

leur numéro. La commande bg est exécutée sur un job stoppé pour le relancer en
arrière-plan.
 Exemple: Le job 2 est relancé en arrière-plan :

10
Liste des processus

 La commande ps (process status) permet d’avoir des informations sur les processus en

cours.
 Lancée seule, elle n’affiche que les processus en cours lancés par l’utilisateur et depuis la

console actuelle.

11
Liste des processus
 Les paramètres -ef donne des informations sur tous les processus en cours.

 Le paramètre -u permet de préciser une liste d’un ou de plusieurs utilisateurs séparés par une

virgule.

 Le paramètre -g effectue la même chose mais pour les groupes, -t pour les terminaux .

 Pour plus de détails: man ps


12
Arrêt d’un processus / signaux

 Le signal est l’un des moyens de communication entre les processus. Lorsqu’on envoie

un signal à un processus, celui-doit doit l’intercepter et réagir en fonction de celui-ci.

 La commande Kill sert essentiellement à arrêter des processus en arrière plan.

Kill –signal PID


 Où signal est un numéro de signal envoyé à un processus PID

13
Arrêt d’un processus / signaux
 Les principaux signaux sont:

Signal Rôle

1 (SIGHUP) Hang Up, est envoyé par le père à tous ses enfants lorsqu’il se termine.

2 (SIGINT) Interruption du processus demandé (touche [Suppr], [Ctrl] C).

3 (SIGQUIT) Idem SIGINT mais génération d’un Core Dump (fichier de débuggage).

9 (SIGKILL) Signal ne pouvant être ignoré, force le processus à finir ’brutalement’.

Signal envoyé par défaut par la commande kill. Demande au processus de


15 (SIGTERM)
se terminer normalement.
redémarre un procesus suspendu (avec bg ou fg)
18 (SIGCONT)

20 (SIGTSTP) suspend un processus (généré par control-z)


14
Arrêt d’un processus / signaux

15
La commande time

 La commande time mesure les durées d’exécution d’une commande, idéal pour

connaître les temps de traitement, et retourne trois valeurs :


 real : durée totale d’exécution de la commande.

 user : durée du temps CPU nécessaire pour exécuter le programme.

 system : durée du temps CPU nécessaire pour exécuter les commandes liées à l’OS (appels

système au sein d’un programme).

16
Le processus de démarrage

 Le processus init est le père de tous les processus et

possède toujours le PID 1. Il est démarré par le


noyau, qui porte le PID « virtuel » 0.

 systemd « system daemon » est un système

d’initialisation et une alternative à l’init classique. Il


est le premier processus démarré par le noyau.

17
Contenu

1. Le système de gestion de processus

2. Les services

18
Systemd

 Systemd utilise des mécanismes performants faisant appel à des fonctions (API)

uniquement présentes dans le noyau Linux comme.


 la notion de cgroups qui permet de regrouper des processus dans un même groupe (chaque

processus lié à un service est placé dans un même groupe).

 Les définitions des différentes unités sont présentes dans /lib/systemd/system.

 Les unités cibles ou les services devant être gérés par le système au démarrage se

situent dans /etc/systemd/system, sous forme de liens symboliques ou de copies de


fichiers.

 Ces chemins peuvent être placés dans des endroits différents selon les distributions.

19
Les services
 La configuration de Systemd se base sur des unités (units) qui ont un nom et un type.

 Exemples:

 le fichier NetworkManager.service définira l'unité de type service qui s'occupe de la gestion réseau

 systemd-shutdownd.socket définira la socket pour l'arrêt.

 Un démon (processus) est un petit programme qui a pour but d'assurer une tâche

particulière.

 Un service utilise un ou plusieurs démons :

 Exemples:

 NetworkManager gère le réseau,

 sshd s'occupe des connexions sécurisées SSH,

 crond s'occupera de l'automatisation des tâches répétitives etc.


20
Les services
 Les services finissent par le suffixe .service.

 Ils sont contrôlés par la même commande systemctl

 Les unités de services sont des fichiers texte standardisés décrivant les règles et commandes liées à ce

service.
service systemctl Description
service name start systemctl start name Démarre le service.
service name stop systemctl stop name Stoppe le service.
service name restart systemctl restart name Redémarre le service.
service name condrestart systemctl try-restart name Redémarre le service seulement s’il
est démarré.
service name reload systemctl reload name Recharge la configuration.
service name status systemctl status name Indique si le service est démarré.
systemctl is-active name
service --status-all systemctl list-units --type service -all Affiche le statut de tous les services.
21
Les services

 Liste des services actifs

22
Les services
 Status donne un grand nombre d’informations et notamment les traces du service ce qui
peut être très utile lorsque le service ne démarre pas
 À propos des traces, utiliser journalctl pour une description plus détaillée.

23
Les services
 L’activation ou la désactivation d’un service permet de spécifier son état souhaité au
chargement de la cible.
 ces modifications n’auront aucune action immédiate sur le service (démarrage ou arrêt),
il faudra pour cela jouer un start/stop.

systemctl Description.
systemctl enable name Active un service.
systemctl disable name Désactive un service.
systemctl status name Indique l’état du service.
systemctl is-enabled name
systemctl list-unit-files --type=service Liste des services, avec ses
systemctl list-dependencies --before / --after name dépendances.

24
Actions système

 Les commandes shutdown restent toujours disponibles, tout comme halt, reboot ou

poweroff qui sont des alias vers les commandes systemd associées.

Systemd Description

systemctl halt Stoppe le système sans éteindre la machine.

systemctl poweroff Stoppe le système et éteint la machine.

systemctl reboot Redémarre la machine.


systemctl suspend Suspend l’exécution du système (économie d’énergie).

25
Fin du Chapitre 5

26

Vous aimerez peut-être aussi