Невозможно запустить Fork, разветвляется нежелательное количество процессов

У меня проблема с вилкой в Perl. Я хочу выполнить 10 процессов разветвления за один раз из одного скрипта, все 10 дочерних (разветвленных) процессов будут делать одно и то же (копировать файлы из одного места в другое).

Когда я выполняю этот код, моя ОС зависает, а когда я на самом деле проверяю, существует чертовски много процессов, которые разветвляются за раз.

Вот мой код:

while ($callCount <= $totalCalls) {
 for (1..$TotalProcessToFork) {
         print "Call -> $callCount";
         if($pid = fork) {
             #in Parent Process
             print " :: PID -> $pid\n";
             push(@list_of_pid, $pid);
         } else {
             #in Child Process
             `touch $callCount`;
         }
         $callCount++;
     }
 }

Теперь, когда я выполняю этот код, выполняется около 1000 дочерних элементов.

Кто-нибудь может сказать мне, что я делаю здесь не так?

0
задан user1065000 28 November 2011 в 10:42
поделиться