В Unix-подібних системах процес-зомбі (часто позначається, як defunct) — це процес, що завершив виконання, але все ще має запис в таблиці процесів. Цей запис потрібен, щоб батьківський процес міг прочитати . Термін процес-зомбі походить із загального визначення людини-зомбі. За цією метафорою процес-нащадок помер, але ще не був забраний смертю. На відміну від нормальних процесів, команда kill ніяк не впливає на процес-зомбі.
Коли процес завершується, вся пам’ять і пов’язані з ним ресурси звільняються для інших процесів, проте, запис процесу залишається в таблиці процесів. Батьківський процес може прочитати за допомогою системного виклику wait
, після чого процес-зомбі буде прибрано зі списку процесів. Виклик wait
може бути зроблено послідовно, але зазвичай його виконують в обробнику подій для SIGCHLD, який отримує батьківський процес, коли нащадок завершується.
Приклади
Послідовне очікування процесу-нащадка в визначеному порядку може лишити зомбі довше ніж згаданий „короткий проміжок часу“. Це не обов’язково вада в програмі, а просто концепт програмування, що не часто зустрічається.
С
#include <sys/wait.h> #include <stdlib.h> #include <unistd.h> int main(void) { pid_t pids[5]; int i; for (i = 4; i >= 0; --i) { pids[i] = fork(); if (pids[i] == 0) { sleep(i+1); _exit(0); } } for (i = 4; i >= 0; --i) waitpid(pids[i], NULL, 0); }
shell
#!/bin/sh (echo bu VINRARUS & sleep 666)& echo Zombie is created only to 666 sec!
Посилання
- Zombie process usenet post [ 1 лютого 2020 у Wayback Machine.]
- UNIX FAQ Question 3.13: How do I get rid of zombie processes that persevere? [ 30 вересня 2020 у Wayback Machine.]
- Zombies(5) [ 9 листопада 2020 у Wayback Machine.] (from UNIX System Concepts )
- How to kill defunct processes [ 22 квітня 2010 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет