The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"fork в perl"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"fork в perl"  
Сообщение от Zerg email(??) on 28-Май-08, 16:05 
вот например банальный листинг программы-примера
работы с fork

###############################################################
my $pid = fork(); # 'разветвить' текущий процесс
# fork вернет 0 в потомке и PID потомка в процессе-предке
die "fork не отработал: $!" unless defined $pid;
unless ($pid) {              # процесс-потомок
   print "Начался потомок PID $$\n";
   for (1..3) {            
      print "Потомок PID $$ работает $_\n";
      sleep 2;           # 'заснуть' на 2 секунды
   }
   print "Закончился потомок PID $$\n";
   exit;
}
if ($pid) {              # процесс-предок
   print "Начался предок PID $$\n";
   for (1..3) {              
      print "Предок PID $$ работает $_\n";
      sleep 100;          
   }
   # возможно, здесь нужно ждать завершения потомка:
   # print "Предок PID $$ ждет завершения $pid\n";
   # waitpid $pid, 0;
   print "Закончился предок PID $$\n";
}
###############################################################

Допустим у нас это записано в файлик test.pl

Если запустить ps, то получим следующую картину.

/usr/bin/perl ./test.pl  
[test.pl] <defunct>      

Соответственно, если бы мы создавали 3 потомка было бы
[test.pl] <defunct> - 3 штуки.

Как избавиться от этого ?
Дочерний Процесс завершился. Завершился нормально ...
Ни памяти, ни проц. времени не занимает.
Но всё-таки раздражает!
Кроме того, данный процесс явно отжирает файловый дескриптор.



Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

  • fork в perl, phpcoder, 16:17 , 28-Май-08, (1)  
  • fork в perl, parad, 17:11 , 28-Май-08, (2)  
  • fork в perl, angra, 22:04 , 29-Май-08, (3)  

Сообщения по теме [Сортировка по времени | RSS]


1. "fork в perl"  
Сообщение от phpcoder email(??) on 28-Май-08, 16:17 
http://www.google.ru/search?hl=ru&q=perl+fork+avoid+zombie
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "fork в perl"  
Сообщение от parad (ok) on 28-Май-08, 17:11 
При смерти потомка родителю приходит сигнал CHLD - нужно его обработать.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "fork в perl"  
Сообщение от angra (ok) on 29-Май-08, 22:04 
Раскомментируйте строчки с waitpid
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру