Exercice Corrigé Gestion Des Processus Linux – Partie 7

Les exercices pratiques sur la gestion des processus linux comportent des exercices théoriques et pratiques sur les concepts fondamentaux de la gestion des processus, y compris la création, la planification, et la terminaison des processus. Vous aurez l’occasion d’explorer des commandes essentiels tels que ps et top pour surveiller les processus en temps réel, ainsi que d’utiliser des commandes comme kill pour gérer les processus.

De plus, des exercices aborderont la gestion de la mémoire, l’utilisation des identifiants de processus (PID), ainsi que l’interaction entre les processus via des signaux. Les travaux pratiques incluront des scénarios de simulation où vous pouvez créerer des scripts pour automatiser la gestion des processus et résoudre des problèmes courants liés aux processus orphelins et aux zombies.

L’objectif est de fournir une compréhension approfondie de la manière dont le système d’exploitation Linux gère les processus, ainsi que des compétences pratiques pour gérer efficacement les processus dans un environnement réel.

 
 

Exercice 1:

Utilisez la transcription suivante pour répondre aux questions suivantes.

[alex@station alex]$ ps -U alex
PID   TTY        TIME        CMD
4785   ?       00:00:00   gnome-session
4828   ?       00:00:00   ssh-agent
...
4846   ?       00:00:00   xscreensaver
5410   pts/8   00:00:00   bash
5451   ?       00:00:00   same-gnome
5452   ?       00:00:00   same-gnome
5454   ?       00:00:01   gimp
5455   ?       00:00:00   script-fu
5463   pts/8   00:00:00   ps
5907   pts/7   00:00:00   bash
5942   pts/7   00:00:00   find

Dans un autre terminal, l’utilisateur alex exécute la commande suivante.

[alex@station alex]$ find / > /dev/null 2>/dev/null

1.1) Laquelle des lignes de commande suivantes envoie un SIGTERM au processus xscreensaver ?

A kill TERM xscreensaver

B kill 4846

C kill xscreensaver

D kill -9 4846

E Aucune de ces réponses.

B

Pour envoyer un SIGTERM au processus xscreensaver, la commande correcte serait: kill 4846

Cette commande envoie le signal par défaut (SIGTERM) au processus portant le PID 4846, qui est xscreensaver d’après la sortie ps.

Voici une brève explication des autres options:

  • A. kill TERM xscreensaver: Cette syntaxe est incorrecte car kill requiert un PID, et non le nom du processus.
  • C. kill xscreensaver: Comme l’option a, cette syntaxe est également incorrecte car elle utilise le nom du processus au lieu du PID.
  • D. kill -9 4846: Bien que cette commande mette fin au processus, elle utilise SIGKILL (-9), ce qui n’est pas ce qui a été demandé (SIGTERM).
  • E. Aucune de ces réponses: Cette réponse est incorrecte car l’option b est valide.

 

1.2) Lequel des éléments suivants envoie un SIGKILL à la commande xscreensaver ?

A kill TERM xscreensaver

B kill 4846

C kill xscreensaver

D kill -9 4846

E Aucune de ces réponses.

D
Pour envoyer un SIGKILL au processus xscreensaver, la commande correcte est la suivante: kill -9 4846.

 

1.3) Laquelle des commandes suivantes peut être utilisée pour envoyer un SIGTERM à un processus ?

A kill

B pkill

C gnome-system-monitor

D top

E Tous ces commandes

E

Pour envoyer un SIGTERM à un processus, les commandes suivantes peuvent être utilisées:

  • A. kill: Vous pouvez spécifier un PID pour envoyer un SIGTERM (comportement par défaut).
  • B. pkill: Cette commande permet de mettre fin à un processus par son nom, en envoyant un SIGTERM par défaut.
  • C. gnome-system-monitor: Il s’agit d’un outil graphique qui peut être utilisé pour mettre fin à des processus, et qui envoie généralement un SIGTERM.
  • D. top: Cette commande permet de visualiser les processus en cours d’exécution et d’envoyer des signaux, y compris SIGTERM, à un processus sélectionné.

 

1.4) Lequel des éléments suivants envoie un SIGINT (signal numéro 2) à la commande « find » ?

A En utilisant la séquence de contrôle CTRL+C sur le terminal pts/7.

B kill -INT 5942

C pkill -2 "^f.*d$"

D Tout ce qui précède

E A et B uniquement

D

Pour envoyer un SIGINT (signal numéro 2) à la commande find, les options suivantes s’appliquent:

  • A. Utiliser la séquence de contrôle CTRL+C sur le terminal pts/7: cela enverra un SIGINT au processus d’avant-plan s’exécutant dans ce terminal, qui est find dans ce cas.
  • B. kill -INT 5942: Cette commande envoie explicitement un SIGINT au processus ayant le PID 5942 (qui est la commande find).
  • C. pkill -2 "^f.*d$": Cette commande utilise un motif pour correspondre à la commande find et envoie un SIGINT. Elle correspond aux processus dont les noms commencent par « f » et se terminent par « d », ce qui inclut find.

 

1.5) Laquelle des lignes de commande suivantes enverrait aux deux instances de l’application same-gnome un signal SIGTERM ?

A pkill same-gnome

B pkill -c same-gnome

C pkill -u same-gnome

D pkill -9 same-gnome

E Aucune de ces réponses

A

Pour envoyer un signal SIGTERM aux deux instances de l’application same-gnome, la commande appropriée est la suivante: pkill same-gnome

Cette commande recherche tous les processus portant le nom same-gnome et leur envoie un signal SIGTERM (le signal par défaut de pkill).

Les autres options n’envoient pas correctement un SIGTERM aux deux instances:

  • B. pkill -c same-gnome: Cette commande compterait les instances au lieu d’envoyer un signal.
  • C. pkill -u same-gnome: Cette commande est mal structurée; -u spécifie un utilisateur et non un nom de processus.
  • D. pkill -9 same-gnome: Cette commande enverrait un signal SIGKILL au lieu de SIGTERM, ce qui n’est pas ce que demande la question.

 

1.6) Lequel des éléments suivants enverrait un SIGCHLD (signal numéro 17) au processus ssh-agent ?

A kill -CHLD ssh-agent

B kill -17 ssh-agent

C kill -CHLD 4828

D Toutes ces réponses

E A et C uniquement

C
kill -CHLD 4828: cela enverra correctement un signal SIGCHLD au processus portant le PID 4828, qui est l’agent ssh.

 

1.7) Quelle touche pressée dans la commande top permet à l’utilisateur d’envoyer un signal à un processus ?

A s

B z

C t

D k

E Aucune de ces réponses

D
En appuyant sur k, vous êtes invité à saisir le PID du processus auquel vous souhaitez envoyer un signal, suivi du numéro du signal.

 

1.8) Lequel des éléments suivants n’est pas l’une des réactions possibles du noyau à la réception d’un signal ?

A Le processus se termine.

B Le processus est redémarré.

C Le processus se termine et une image mémoire du processus est transférée sur le système de fichiers.

D Le processus ignore le signal.

E Le processus est arrêté (suspendu).

B
L’option qui ne fait pas partie des réponses possibles du noyau à la réception d’un signal est la suivante: Le processus est redémarré.

Lorsqu’un processus reçoit un signal, il peut se terminer, être arrêté, ignorer le signal ou se terminer par un vidage de la mémoire, mais il ne redémarre pas automatiquement.

 

1.9) Laquelle des commandes suivantes tuerait effectivement tous les processus énumérés ci-dessus ?

A kill -9 *

B kill -u alex

C pkill -CHLD -u alex

D pkill -KILL -u alex

E Aucune de ces réponses

D
La commande qui tuerait effectivement tous les processus énumérés ci-dessus est la suivante: pkill -KILL -u alex.

Cette commande envoie le signal SIGKILL à tous les processus appartenant à l’utilisateur « alex », ce qui les termine.

 

 

Exercice 2:

L’utilisateur alex utilise l’interpréteur interactif python.

[alex@station alex]$ python
Python 2.4.3 (#1, Dec 11 2020, 12:22:42)
[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

En utilisant la séquence de touches CTRL+C, la réponse suivante est générée.

KeyboardInterrupt
>>>

2.1) Qu’est-ce qui décrit le mieux la façon dont le processus python répond au signal SIGINT ?

A Le programme ignore le signal SIGINT.

B Le programme a implémenté un gestionnaire de signal personnalisé pour le signal SIGINT.

C Le programme implémente le gestionnaire de signal par défaut du noyau pour le signal SIGINT, qui consiste à terminer le processus.

D Le programme implémente le gestionnaire de signal par défaut du noyau pour le signal SIGINT, qui consiste à arrêter (suspendre) le processus.

E Aucune de ces réponses

B
La meilleure description de la façon dont le processus Python répond au signal SIGINT (généré en appuyant sur CTRL+C) est: Le programme a implémenté un gestionnaire de signal personnalisé pour le signal SIGINT.

Lorsque le signal SIGINT est reçu, l’interpréteur Python lève une exception KeyboardInterrupt, ce qui permet à l’utilisateur de gérer l’interruption de manière élégante plutôt que d’interrompre purement et simplement le processus.

 

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *