개발자 Q&A

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

2025.04.04 11:59

pcntl_signal_dispatch 함수 사용에 대한 질문

목록
  • SOLID원칙수호자 1일 전 2025.04.04 11:59
  • 2
    1
제가 php에서 pcntl_signal_dispatch 함수를 사용할 때,
여러 signal을 동시에 처리하는 방법에 대해 궁금합니다.
여러 signal이 동시에 발생했을 때,
pcntl_signal_dispatch 함수로 signal을 처리하는 순서가 어떻게 결정되는지 궁금합니다.

예를 들어, SIGINT와 SIGTERM이 동시에 발생했을 때,
어떻게 signal이 처리되는지 알려주시 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  1일 전



    php의 pcntl_signal_dispatch 함수는 signal을 처리하는 함수입니다. 여러 signal이 동시에 발생했을 때, pcntl_signal_dispatch 함수는 signal을 FIFO(First-In-First-Out) 순서로 처리합니다. FIFO 순서는 signal이 발생한 순서를 따릅니다.

    예를 들어, SIGINT와 SIGTERM이 동시에 발생했다면, pcntl_signal_dispatch 함수는 SIGINT signal을 먼저 처리하고, 그 다음 SIGTERM signal을 처리합니다.

    여러 signal을 동시에 처리하는 방법은 다음과 같습니다.

    1. signal을 FIFO 순서로 처리합니다.
    2. signal을 처리하는 함수가 signal을 받은 순서에 따라 처리합니다.

    예를 들어, SIGINT와 SIGTERM signal이 동시에 발생했다면, signal을 처리하는 함수는 SIGINT signal을 먼저 처리하고, 그 다음 SIGTERM signal을 처리합니다.

    다음은 예제 코드입니다.

    #hostingforum.kr
    php
    
    <?php
    
    function signal_handler($signo) {
    
        switch ($signo) {
    
            case SIGINT:
    
                echo "SIGINT signal receivedn";
    
                break;
    
            case SIGTERM:
    
                echo "SIGTERM signal receivedn";
    
                break;
    
        }
    
    }
    
    
    
    pcntl_signal(SIGINT, 'signal_handler');
    
    pcntl_signal(SIGTERM, 'signal_handler');
    
    
    
    // 여러 signal이 동시에 발생합니다.
    
    pcntl_signal_dispatch();
    
    ?>
    
    


    이 예제 코드에서, SIGINT와 SIGTERM signal이 동시에 발생했을 때, signal_handler 함수는 SIGINT signal을 먼저 처리하고, 그 다음 SIGTERM signal을 처리합니다.

    2025-04-04 12:00

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

검색

게시물 검색