라이브러리
[PHP] pcntl_waitpid - 포크된 자식의 상태를 기다리거나 반환합니다.
pcntl_waitpid 함수 소개
`pcntl_waitpid` 함수는 프로세스 ID를 입력받아 해당 프로세스가 종료될 때까지 기다리는 함수입니다. 이 함수는 `pcntl` 확장 모듈에 속하며, 프로세스 관리에 사용됩니다.
pcntl_waitpid 함수 사용법
`pcntl_waitpid` 함수의 사용법은 다음과 같습니다.
#hostingforum.kr
php
pcntl_waitpid($pid, $status, $options)
* `$pid`: 프로세스 ID를 입력받습니다.
* `$status`: 프로세스의 상태를 저장할 변수입니다.
* `$options`: 옵션을 입력받습니다. 기본값은 0입니다.
pcntl_waitpid 함수 옵션
`pcntl_waitpid` 함수의 옵션은 다음과 같습니다.
* `PCNTL_WNOHANG`: 프로세스가 종료되지 않았을 때 즉시 반환합니다.
* `PCNTL_WUNTRACED`: 프로세스가 중단되었을 때도 반환합니다.
예제
다음 예제는 `pcntl_waitpid` 함수를 사용하여 프로세스를 기다리는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 프로세스 생성
$pid = pcntl_fork();
if ($pid == -1) {
die("fork failed");
} elseif ($pid) {
// 부모 프로세스
echo "부모 프로세스 ID: $pid
";
pcntl_waitpid($pid, $status);
echo "자식 프로세스가 종료되었습니다.
";
} else {
// 자식 프로세스
echo "자식 프로세스 ID: $pid
";
sleep(5); // 5초 동안 대기
exit(0); // 프로세스 종료
}
?>
이 예제에서는 `pcntl_fork` 함수를 사용하여 프로세스를 생성하고, `pcntl_waitpid` 함수를 사용하여 자식 프로세스가 종료될 때까지 기다립니다.
예제 2: PCNTL_WNOHANG 옵션 사용
다음 예제는 `PCNTL_WNOHANG` 옵션을 사용하여 프로세스를 기다리는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 프로세스 생성
$pid = pcntl_fork();
if ($pid == -1) {
die("fork failed");
} elseif ($pid) {
// 부모 프로세스
echo "부모 프로세스 ID: $pid
";
$status = pcntl_waitpid($pid, $status, PCNTL_WNOHANG);
if ($status == 0) {
echo "자식 프로세스가 종료되었습니다.
";
} else {
echo "자식 프로세스가 종료되지 않았습니다.
";
}
} else {
// 자식 프로세스
echo "자식 프로세스 ID: $pid
";
sleep(5); // 5초 동안 대기
exit(0); // 프로세스 종료
}
?>
이 예제에서는 `PCNTL_WNOHANG` 옵션을 사용하여 프로세스를 기다리고, 자식 프로세스가 종료되지 않았을 때 즉시 반환합니다.
예제 3: PCNTL_WUNTRACED 옵션 사용
다음 예제는 `PCNTL_WUNTRACED` 옵션을 사용하여 프로세스를 기다리는 방법을 보여줍니다.
#hostingforum.kr
php
<?php
// 프로세스 생성
$pid = pcntl_fork();
if ($pid == -1) {
die("fork failed");
} elseif ($pid) {
// 부모 프로세스
echo "부모 프로세스 ID: $pid
";
$status = pcntl_waitpid($pid, $status, PCNTL_WUNTRACED);
if ($status == 0) {
echo "자식 프로세스가 종료되었습니다.
";
} elseif ($status == 16) {
echo "자식 프로세스가 중단되었습니다.
";
} else {
echo "자식 프로세스가 종료되지 않았습니다.
";
}
} else {
// 자식 프로세스
echo "자식 프로세스 ID: $pid
";
sleep(5); // 5초 동안 대기
exit(16); // 프로세스 중단
}
?>
이 예제에서는 `PCNTL_WUNTRACED` 옵션을 사용하여 프로세스를 기다리고, 자식 프로세스가 중단되었을 때도 반환합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.