
	                	                 
pcntl_wifsignaled 함수는 프로세스가 신호를 받았는지 여부를 확인하는 데 사용됩니다. 이 함수가 반환하는 값은 1(true) 인지 0(false) 인지 여부를 알려주지 않습니다. 대신, 이 함수가 반환하는 값은 1(true) 인 경우 프로세스가 신호를 받았으며, 0(false) 인 경우 프로세스가 신호를 받지 않았음을 의미합니다.
이 함수를 사용할 때는 pcntl_wstopsig() 함수와 pcntl_wexitstatus() 함수를 함께 사용해야 합니다. pcntl_wstopsig() 함수는 프로세스가 신호를 받았을 때 중단된 시그널을 반환하며, pcntl_wexitstatus() 함수는 프로세스가 신호를 받았을 때 종료된 시그널을 반환합니다.
예를 들어, 프로세스가 SIGINT 신호를 받았을 때는 다음과 같이 처리할 수 있습니다.
#hostingforum.kr
php
$pid = pcntl_fork();
if ($pid == -1) {
    die('Could not fork');
} elseif ($pid) {
    // 부모 프로세스
    pcntl_waitpid($pid, $status);
    if (pcntl_wifsignaled($status)) {
        $sig = pcntl_wstopsig($status);
        if ($sig == SIGINT) {
            // SIGINT 신호를 받았을 때 처리
            echo "SIGINT 신호를 받았습니다.n";
        }
    }
} else {
    // 자식 프로세스
    // SIGINT 신호를 받을 때 처리
    pcntl_signal(SIGINT, function($sig) {
        echo "SIGINT 신호를 받았습니다.n";
        exit(0);
    });
    while (true) {
        // 프로세스 루프
    }
}
이 함수를 사용하여 프로세스가 신호를 받았는지 확인하는 방법은 다음과 같습니다.
1. pcntl_wifsignaled() 함수를 사용하여 프로세스가 신호를 받았는지 여부를 확인합니다.
2. pcntl_wstopsig() 함수를 사용하여 프로세스가 신호를 받았을 때 중단된 시그널을 반환합니다.
3. pcntl_wexitstatus() 함수를 사용하여 프로세스가 신호를 받았을 때 종료된 시그널을 반환합니다.
4. 프로세스가 신호를 받았을 때 처리를 위해 pcntl_signal() 함수를 사용합니다.
2025-06-05 00:32