Pour répondre à la question numéro 1 :
Lorsqu'un processus génère des processus enfants, les enfants ont chacun leur propre PID. Le PPID de chaque enfant (ID de processus parent) est le PID de leur processus parent. Si le parent meurt, les processus enfants sont orphelins. Les processus orphelins sont automatiquement récupérés par le processus d'initialisation du système qui a un PID de 1.
Problème
Votre script crée probablement des zombies à cause de votre kill -9
commandes ; comme suggéré par jjlin answer aussi n'est jamais une bonne pratique pour tuer brusquement un processus sans y être forcé.
À partir de man bash
on peut lire :
Les processus marqués
sont des processus morts (appelés "zombies ") qui restent parce que leur parent ne les a pas détruits correctement .Ces processus seront détruits par init(8) si le processus parent se termine.
Réponse 1 : Le processus init a le PID 1 et pour cela Linux leur attribue le parent avec le PID 1 (car il les attribue à init ).
Réponse 2 : Ils ne peuvent pas être tués simplement parce qu'ils sont juste morts ... si leur parent a init
suffit probablement d'attendre un peu de temps.
Pour supprimer les zombies d'un système, le signal SIGCHLD peut être envoyé manuellement au parent, à l'aide de la commande kill. Si le processus parent refuse toujours de récolter le zombie, l'étape suivante consiste à supprimer le processus parent. Lorsqu'un processus perd son parent, init devient son nouveau parent. Init exécute périodiquement l'appel système wait pour récolter tous les zombies avec init comme parent. [1]
Au cas où cette idée surgirait un jour ou l'autre :au #kill -9 init
processus avec privilège root est l'équivalent logiciel pour débrancher physiquement l'ordinateur du réseau électrique. [:-)]
Cependant, les processus zombies peut être identifié dans la sortie de ps
commande par la présence d'un "Z" dans le STAT colonne. Vous pouvez utiliser la ligne suivante pour les identifier facilement
ps -aux | grep Z
Quelques références sur le monde des zombies sous Linux :
- Existe-t-il un moyen de tuer un processus zombie sans redémarrage ?
- Que sont les processus zombies
- Comment tuer le processus zombie
- [1] À partir de nombreuses sources sur le net