
Si vous êtes un utilisateur de Linux, vous avez peut-être vu des processus zombies traîner dans votre liste de processus. Vous ne pouvez pas tuer un processus de zombies parce qu'il est déjà mort - comme un zombie réel.
Les zombies sont essentiellement les bits restants des processus morts qui n'ont pas été nettoyés correctement. Un programme qui crée des processus de zombies n'est pas programmé correctement - les programmes ne sont pas supposés laisser les processus de zombies se dérouler
Crédit d'image: Daniel Hollister sur Flickr (Remixed)
Lorsqu'un processus meurt sous Linux, tout n'est pas immédiatement effacé de la mémoire - son processus le descripteur reste en mémoire (le descripteur de processus ne prend qu'une petite quantité de mémoire). Le statut du processus devient EXIT_ZOMBIE et le parent du processus est averti que son processus fils est mort avec le signal SIGCHLD. Le processus parent est alors supposé exécuter l'appel système wait () pour lire l'état de sortie du processus mort et d'autres informations. Cela permet au processus parent d'obtenir des informations à partir du processus mort. Après l'appel de wait (), le processus zombie est complètement effacé de la mémoire.
Cela arrive normalement très rapidement, donc vous ne verrez pas les processus zombies s'accumuler sur votre système. Cependant, si un processus parent n'est pas programmé correctement et n'appelle jamais wait (), ses enfants zombies resteront en mémoire jusqu'à ce qu'ils soient nettoyés.
Des utilitaires comme GNOME System Monitor, le
top La commande ps affiche les processus zombie Dangers des processus Zombie

quelques processus zombies qui traînent ne posent aucun problème - bien qu'ils indiquent un bug avec leur processus parent sur votre système.
Se débarrasser des processus Zombie

L'un des moyens consiste à envoyer le signal SIGCHLD au processus parent. Ce signal indique au processus parent d'exécuter l'appel système wait () et de nettoyer ses enfants zombies. Envoyez le signal avec la commande
kill en remplaçant pid dans la commande ci-dessous par le PID du processus parent: kill -s SIGCHLD pid
Cependant, si le processus parent est 't programmé correctement et ignore les signaux SIGCHLD, cela n'aidera pas. Vous devrez tuer ou fermer le processus parent des zombies. Lorsque le processus qui a créé les zombies se termine, init hérite des processus zombie et devient leur nouveau parent. (init est le premier processus démarré sous Linux au démarrage et est assigné à PID 1.) init exécute périodiquement l'appel système wait () pour nettoyer ses enfants zombies, donc init fera un peu de travail sur les zombies. Vous pouvez redémarrer le processus parent après l'avoir fermé.
Si un processus parent continue à créer des zombies, il doit être corrigé afin qu'il appelle wait () correctement pour récolter ses enfants zombies. Déposer un rapport de bogue si un programme de votre système continue de créer des zombies.
La réalité virtuelle est presque là: de quoi aurai-je besoin?
Après des années d'attente, des douzaines de kits de développement différents et plus de tests bêta que l'on peut des casques de réalité virtuelle vraiment immersifs est enfin sur nous. Les deux HTC de Vive et Oculus Rift de Facebook sont prêts à être achetés ... mais avec des écrans HD et des gigaoctets de données supplémentaires pour les mouvements et le positionnement spatial, de quoi ces systèmes ont-ils vraiment besoin pour fonctionner?
Comment utiliser votre routeur et le modem / routeur Router Combo en Tandem
Si vous utilisez votre propre routeur avec le combo modem / routeur fourni par votre FAI, il y a de fortes chances que vous ' Par inadvertance, vous vous êtes donné un gros mal de tête et une foule de problèmes réseau difficiles à cerner. Regardons pourquoi ces problèmes surviennent, comment les détecter et comment les réparer Pourquoi doubler les routeurs équivaut à doubler les maux de tête CONNEXE: Comment dépanner votre connexion Internet, couche par couche Les pires problèmes techniques sont ceux qui sont difficiles à cerner.