
pcntl_wifsignaled 함수의 반환값이 true인 경우, 신호가 받았는지를 체크하는 방법은 pcntl_wstatus 함수를 사용하여 프로세스의 상태를 확인하는 것입니다.
pcntl_wstatus 함수는 프로세스의 종료 상태를 반환하며, 이 함수의 반환값에 따라 프로세스가 신호를 받았는지 여부를 확인할 수 있습니다.
pcntl_wstatus 함수의 반환값이 WIFSIGNALED(1)인 경우, 프로세스가 신호를 받았음을 의미합니다.
다음은 예제 코드입니다.
#hostingforum.kr
php
$pid = pcntl_fork();
if ($pid == -1) {
die('Could not fork');
} elseif ($pid) {
// 부모 프로세스
pcntl_waitpid($pid, $status);
if (pcntl_wifsignaled($status)) {
if (pcntl_wstatus($status) & WIFSIGNALED) {
echo "프로세스가 신호를 받았습니다.n";
}
}
} else {
// 자식 프로세스
// 프로세스가 신호를 받도록 함
posix_kill(getmypid(), SIGINT);
exit(0);
}
위 코드에서 pcntl_wstatus 함수의 반환값을 WIFSIGNALED(1)과 AND 연산을 사용하여 프로세스가 신호를 받았는지 여부를 확인합니다.
2025-03-15 19:44