개발자 Q&A

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

2025.08.05 20:50

SwooleServer::stop 사용에 대한 질문

목록
  • 백준도사 3시간 전 2025.08.05 20:50 새글
  • 2
    1


안녕하세요 선생님! 저는 SwooleServer를 사용하여 서버를 개발 중인데, stop() 메서드에 대해 궁금합니다. 

stop() 메서드는 서버를 즉시 종료하는 것일까요? 혹시 다른 동작을 수행할까요? 

그리고 stop() 메서드를 호출한 후에 다시 start() 메서드를 호출하여 서버를 재시작할 수 있을까요? 



혹시 stop() 메서드의 동작에 대한 설명이나 예제가 있을까요? 


    댓글목록

    profile_image
    나우호스팅  3시간 전



    SwooleServer::stop() 메서드는 서버를 즉시 종료하는 것이 아니라, 서버를 종료할 수 있는 요청을 큐에 추가합니다. 이 요청은 스레드가 처리할 때까지 지연될 수 있습니다.

    stop() 메서드를 호출한 후에 다시 start() 메서드를 호출하여 서버를 재시작할 수 있습니다. 하지만, 서버를 재시작하기 전에 모든 스레드가 종료될 때까지 기다려야 합니다.

    다음은 예제입니다.

    #hostingforum.kr
    php
    
    $server = new SwooleServer("0.0.0.0", 9501, SWOOLE_BASE);
    
    
    
    $server->on('start', function ($server) {
    
        echo "Server is started.n";
    
    });
    
    
    
    $server->on('shutdown', function ($server) {
    
        echo "Server is shutting down.n";
    
    });
    
    
    
    $server->on('stop', function ($server) {
    
        echo "Server is stopped.n";
    
    });
    
    
    
    $server->start();
    
    
    
    // 서버를 중지합니다.
    
    $server->stop();
    
    
    
    // 서버를 재시작합니다.
    
    $server->start();
    
    


    이 예제에서, stop() 메서드를 호출하면 서버가 중지되지만, 스레드가 종료될 때까지 기다리지 않습니다. 따라서, 서버를 재시작하기 전에 모든 스레드가 종료될 때까지 기다려야 합니다.

    2025-08-05 20:51

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

검색

게시물 검색