프로세스 생성에 관한 질문입니다.

ar의 이미지

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <pthread.h>

#define TRUE  1
#define FALSE 0


int main()
{
  int   i, j;
  pid_t     p[3], p1, p2, p3;
  int   flag;

  flag = 0; i = 1; j = 1;

  while ( TRUE )
  {
    for ( i = 0; i < 3; i++ )
    {
      if ( (p[i] = vfork()) == 0 )
      {
        if ( i == 0 )
        {
          execl(" 어떤 플그램 ", " ", NULL);
        }
        else if ( i == 1 )
        {
          while ( TRUE )
          {
            if ( (i++ % 7) == 0 )
            {
              kill(p[0], SIGINT);
              flag = 1;
              break;
            }
            fprintf(stdout, "%d u \n", i);
            sleep(1);
          }
        }
        else
        {
          while ( TRUE )
          {
            if ( (j++ % 11) == 0 )
            {
              kill(p[0], SIGINT);
              kill(p[1], SIGINT);
              break;
            }
            fprintf(stdout, "%d t \n", j);
            sleep(1);
          }
        }
      }
    }

    fprintf(stdout, "debug - hello world 1\n");
    waitpid(p[0], 0, 0);
    fprintf(stdout, "debug - hello world 2\n");
    waitpid(p[1], 0, 0);
    fprintf(stdout, "debug - hello world 3\n");
     if ( flag )
    {
      kill(p[2], SIGINT);
      flag = 0;
    }
    waitpid(p[2], 0, 0);
    fprintf(stdout, "debug - hello world 4\n");
  }

  return 0;
}

코드가 대충 이런데요.. 세번째 프로세스의 실행이 안되네요..