Adoption

Définition, exemples et bonnes pratiques

À retenir

  • Évite la création de processus zombies (processus morts qui occupent encore la table du système).
  • Le processus adoptant par défaut est généralement le premier processus lancé par l'ordinateur (PID 1).
  • C'est une sécurité intégrée au noyau du système d'exploitation.

En informatique système, l'adoption est le mécanisme automatique par lequel un processus (un programme en cours d'exécution) est rattaché à un nouveau parent lorsque son créateur initial s'arrête. C'est un peu comme si, dans une course de relais, un coureur remplaçant récupérait le témoin d'un partenaire ayant dû quitter la piste de manière imprévue.

Étymologie

Issu du latin adoptio, signifiant l'action de prendre pour sien. En informatique, le terme s'est imposé avec l'apparition des systèmes d'exploitation multitâches (comme Unix) pour décrire le transfert de responsabilité hiérarchique entre les programmes.

Exemples d'usage

  • Le processus init (ou systemd) qui récupère une tâche de fond après la fermeture brutale du terminal qui l'avait lancée.
  • Un serveur web qui redémarre et dont les processus de traitement de requêtes en cours sont réattribués pour éviter qu'ils ne deviennent des ressources fantômes.

Cas d'usage

Ce concept intervient principalement dans la gestion des systèmes d'exploitation (noyau) pour maintenir la stabilité de la mémoire. Il est crucial lors de la création de services (daemons) qui doivent continuer à tourner indépendamment de l'utilisateur qui les a démarrés.

Bonnes pratiques

Pour un développeur système, il est préférable de coder une fermeture propre des processus enfants plutôt que de compter systématiquement sur l'adoption par le système, afin d'éviter la prolifération temporaire de processus inutiles.

Synonymes

récupération de processus rattachement hiérarchique

Antonymes

abandon détachement

Conseil

Si vous débutez sur Linux, utilisez la commande pstree ou top pour visualiser la hiérarchie des processus et observer comment ils sont tous reliés à une racine commune.

Questions fréquentes

Qu'est-ce qu'un processus orphelin ?

C'est un programme dont le parent (le processus qui l'a lancé) s'est terminé avant lui.

Qui devient le nouveau parent ?

Sur Linux, c'est traditionnellement le processus <code>init</code> (identifié par le numéro 1) qui joue le rôle de parent adoptif universel.