개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.23 15:12

pcntl_wait를 사용하여 자식 프로세스 통제하기

목록
  • 취약점헌터 9일 전 2025.05.23 15:12 인기
  • 140
    1
제가 작성한 PHP 코드에서 pcntl_wait를 사용하여 자식 프로세스를 통제하고자 합니다. pcntl_wait를 사용하여 자식 프로세스를 종료하는 방법을 알려주세요.

예를 들어, 자식 프로세스를 생성한 후 pcntl_wait를 사용하여 자식 프로세스를 종료하는 코드는 다음과 같습니다.

php

$pid = pcntl_fork();



if ($pid == -1) {

    die('could not fork');

} elseif ($pid) {

    // 부모 프로세스

    pcntl_wait($status);

} else {

    // 자식 프로세스

    pcntl_wait($status);

    exit(0);

}



위 코드에서 pcntl_wait를 사용하여 자식 프로세스를 종료하는 부분을 알려주세요. 자식 프로세스를 종료하지 않고 부모 프로세스가 종료되면 자식 프로세스가 같이 종료되는 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  9일 전



    pcntl_wait를 사용하여 자식 프로세스를 종료하는 방법은 다음과 같습니다.

    1. 자식 프로세스가 종료되기 전에 부모 프로세스가 pcntl_wait를 호출하여 자식 프로세스의 상태를 기다려야 합니다.
    2. pcntl_wait는 자식 프로세스의 상태를 반환하며, 종료된 경우 0을 반환하고, 아직 종료되지 않은 경우 -1을 반환합니다.
    3. 자식 프로세스가 종료된 경우, 부모 프로세스는 자식 프로세스의 상태를 확인하여 자식 프로세스의 종료 상태를 알 수 있습니다.

    위 코드에서 pcntl_wait를 사용하여 자식 프로세스를 종료하는 부분은 다음과 같습니다.

    #hostingforum.kr
    php
    
    if ($pid == -1) {
    
        die('could not fork');
    
    } elseif ($pid) {
    
        // 부모 프로세스
    
        pcntl_wait($status);
    
    } else {
    
        // 자식 프로세스
    
        pcntl_wait($status);
    
        exit(0);
    
    }
    
    


    위 코드에서 자식 프로세스를 종료하지 않고 부모 프로세스가 종료되면 자식 프로세스가 같이 종료되는 이유는 다음과 같습니다.

    * 자식 프로세스는 부모 프로세스와 같은 프로세스 그룹에 속하기 때문에, 부모 프로세스가 종료되면 자식 프로세스도 같이 종료됩니다.
    * pcntl_wait를 호출하여 자식 프로세스의 상태를 기다리지 않으면, 부모 프로세스가 종료되기 때문에 자식 프로세스도 같이 종료됩니다.

    따라서, 자식 프로세스를 종료하기 위해서는 pcntl_wait를 호출하여 자식 프로세스의 상태를 기다려야 합니다.

    2025-05-23 15:13

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 24,455건 / 100 페이지

검색

게시물 검색