|
|
Компьютеры - Процесс-зомби - Примеры программ, создающих зомби, на разных языках программирования23 января 2011
Оглавление: 1. Процесс-зомби 2. Проблемы зомби 3. Примеры программ, создающих зомби, на разных языках программирования
Си:
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main
{
pid_t child_pid;
child_pid = fork ;
if {
sleep ;
}
else {
exit ;
}
return 0;
}
Разное
- Зомби не могут принимать сигналы, и поэтому их нельзя убрать с помощью утилиты или вызова kill. Убрать их может либо родительский процесс, либо его завершение.
- Все процессы в Unix имеют своих родителей процессы, не имеющие или потерявшие родителей, являются дочерними для init, который в свою очередь является дочерним для ядра. init всегда обрабатывает SIGCHLD, поэтому от таких процессов никогда не остается зомби.
- Зомби можно узнать в списке процессов по флагу «Z» в колонке STAT.
- Хорошим стилем программирования считается всегда обрабатывать SIGCHLD.
- Языки скриптов Perl и Python неявно обрабатывают SIGCHLD, если программа настраивает его игнорирование.
Просмотров: 2675
|