execv를 호출하는 프로세스를 종료하는 방법은 무엇입니까?

execv를 호출하는 프로세스를 종료하는 방법은 무엇입니까?

호출하는 프로세스execv디자인으로 보면 죽지 않습니다.

다음에서 빌린 예여기:

#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>

main() {
   pid_t pid;
   char *const parmList[] = {"/bin/ls", "-l", "/u/userid/dirname", NULL};

   if ((pid = fork()) == -1)
      perror("fork error");
   else if (pid == 0) {
      execv("/bin/ls", parmList);
      printf("Return not expected. Must be an execv error.n");
   }
}

해당 실행 파일을 호출하면 foo시작 후 foo를 어떻게 종료할 수 있나요? 내 유일한 옵션은 상위 프로세스 ID를 캡처한 다음 이를 종료하는 것 같습니다.

foo &
echo $! > /path/to/foo_pid
kill /path/to/foo_pid

하지만 상위 프로세스의 PID를 캡처할 방법이 없습니다.

관련 정보