Le mot "subreaper" est utilisé dans certaines réponses. La recherche sur Google affiche également des entrées dont le mot est "juste utilisé".
Comment puis-je comprendre ce qu'est un "subreaper"?
Le mot "subreaper" est utilisé dans certaines réponses. La recherche sur Google affiche également des entrées dont le mot est "juste utilisé".
Comment puis-je comprendre ce qu'est un "subreaper"?
Réponses:
Ceci a été implémenté dans le noyau Linux 3.4 en tant qu'indicateur de l'appel système prctl () .
De la
prctl(2)
page de manuel:Un processus peut se définir comme une sous-traitante avec
prctl(PR_SET_CHILD_SUBREAPER)
. Si tel est le cas, ce n'est pasinit
(PID 1) qui deviendra le parent des processus enfants orphelins , mais le grand-parent vivant le plus proche qui est marqué en tant que subreaper deviendra le nouveau parent. S'il n'y a pas de grand-parent vivant, ouiinit
.La raison de mettre en œuvre ce mécanisme était que les gestionnaires / superviseurs de services en espace utilisateur (comme
upstart
,systemd
) devaient suivre leurs services démarrés. De nombreux services démantèlent par double-forgeage et deviennent implicitement liés à nouveau au PID 1. Le gestionnaire de services ne sera plus en mesure de recevoir lesSIGCHLD
signaux et ne sera plus en charge de récolter les enfantswait()
. Toutes les informations sur les enfants sont perdues au moment où PID 1 nettoie les processus re-parentés. Désormais, un processus de gestionnaire de services peut se désigner comme une sorte de "sous-init" et peut maintenant rester en tant que parent de tous les processus orphelins créés par les services démarrés. Tous lesSIGCHLD
signaux seront livrés au gestionnaire de service.Sous Linux, un démon est généralement créé en copiant deux fois le processus intermédiaire, après avoir quitté le petit-enfant. C'est une technique courante pour éviter les processus zombies . Le script init appelle un enfant. Cet enfant bifurque à nouveau et quitte donc immédiatement. Le petit-fils sera adopté par
init
, qui appelle en permanencewait()
à recueillir le statut de sortie de ses enfants pour éviter les zombies. Avec le concept de sous-arpenteurs, le gestionnaire de services en espace utilisateur devient désormais le nouveau parentinit
.la source