Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ivan                                 2:5020/400     20 Apr 2004  18:51:52
 To : All
 Subject : fork в Perl
 -------------------------------------------------------------------------------- 
 
  
 Задача такая нужно с помощью Перл скрипта запускать в память например 10 детей с
 помощью форк так чтобы каждый ребенок занимался своими делами, а в это время
 родительский срипт должен следить за тем чтобы их в памяти оставалось 10 - т е
 если один из 10 закончил работу - запускать еще одноко
 Вопрос такой :
 как следить за тем сколько детей сидит в памяти ?
 Почему то когда я пишу скрипт типа:
 
 for $i (1..10) {
 p[$i]=fork();
 if ($pid[$i] > 0 ) {
 PARENT
 } else {
 CHILD
 exit(0);
 }
 }
 for $i (1..10) {
 if (getpgrp(p[$i]) == - 1 ) {
 Запускать еще одного ребенка ...
 }
 }
 
 Вот так не работает т е обнаруживается что дети не уничтожаются а висят до конца
 выполнения родительского скрипта
 Почему ?
 Еще один вопрос - как отследить по пиду процесса есть ли он еще в памяти -
 getpgrp - оно конечно может являться признаком но некрасиво ...
 Можно конечно использовать $SIG{CHLD} - но не
 пойму как в этом случае оно должно
 работать ...
 --- ifmail v.2.15dev5.3
  * Origin: "MTU-Intel ISP" (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 fork в Perl   Ivan   20 Apr 2004 18:51:52 
 fork в Perl   Serge Chervjakov   20 Apr 2004 21:53:32 
 Re: fork в Perl   Vargen   20 Apr 2004 23:06:31 
Архивное /ru.perl/3655f6e50790.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional