Process Control pcntl_waitpid

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

pcntl_waitpid — 분기된 자식의 상태를 기다리거나 반환합니다.


설명

pcntl_waitpid(
    int $process_id,
    int &$status,
    int $flags = 0,
    array &$resource_usage = []
): int
                

process_id 인수에 의해 지정된 자식이 종료될 때까지 또는 현재 프로세스를 종료하거나 신호 처리 함수를 호출하는 작업을 수행하는 신호가 전달될 때까지 현재 프로세스의 실행을 일시 중단합니다.

process_id가 요청한 자식이 호출 시간(소위 "좀비" 프로세스)까지 이미 종료된 경우 함수는 즉시 반환됩니다. 자식이 사용하는 모든 시스템 리소스가 해제됩니다. 시스템에서 waitpid가 작동하는 방식에 대한 자세한 내용은 시스템의 waitpid(2) 매뉴얼 페이지를 참조하십시오.


매개변수

process_id
process_id의 값은 다음 중 하나일 수 있습니다.
< -1 프로세스 그룹 ID가 process_id의 절대값과 같은 자식 프로세스를 기다립니다.
-1 자식 프로세스를 기다립니다. 이것은 wait 함수가 나타내는 것과 동일한 동작입니다.
0 프로세스 그룹 ID가 호출 프로세스의 ID와 동일한 자식 프로세스를 기다립니다.
> 0 프로세스 ID가 process_id 값과 같은 자식을 기다립니다.

메모: process_id-1을 지정하는 것은 pcntl_wait()가 제공하는 기능과 동일합니다(minus flags).

status
pcntl_waitpid()pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig()pcntl_wstopsig() 함수를 사용하여 평가할 수 있는 status 매개변수에 상태 정보를 저장합니다.
flags
flags의 값은 함께 OR된 다음 두 전역 상수 중 0개 이상의 값입니다.

flags에 대한 가능한 값

WNOHANG return immediately if no child has exited.
WUNTRACED return for children which are stopped, and whose status has not been reported.

반환 값

pcntl_waitpid()는 종료된 자식의 프로세스 ID를 반환합니다. 오류 시 -1을 반환하고 WNOHANG가 사용되었고 사용 가능한 자식이 없는 경우 0을 반환합니다.


기타