개발자 Q&A

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

2025.03.12 22:20

SwooleProcess::exec 관련 질문

  • 클라우드사제 4일 전 2025.03.12 22:20
  • 1
    1
제가 SwooleProcess::exec 메서드를 사용하여 프로세스를 실행하고자 하는데, 아래와 같은 코드를 작성했습니다.

php

$pid = SwooleProcess::exec('php', array('test.php'));



위 코드는 프로세스를 생성하고 PID를 반환합니다. 하지만, 프로세스가 종료된 후 PID를 반환하지 않습니다. 어떻게 해야 프로세스가 종료된 후 PID를 반환할 수 있을까요?

혹은, 프로세스가 종료된 후 PID를 반환받을 수 있는 다른 방법이 있을까요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    SwooleProcess::exec 메서드는 프로세스를 실행하고 PID를 반환하지만, 프로세스가 종료된 후 PID를 반환하지 않습니다.

    이 문제를 해결하기 위해, 프로세스의 종료를 기다리는 방법을 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $pid = SwooleProcess::exec('php', array('test.php'));
    
    $pid = SwooleProcess::wait($pid);
    
    


    위 코드는 프로세스를 실행하고 PID를 반환한 후, 프로세스의 종료를 기다립니다.

    또는, 프로세스의 종료를 기다리지 않고 PID를 반환받으려면, SwooleProcess::start 메서드를 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $process = new SwooleProcess(function ($worker) {
    
        // 프로세스 실행 코드
    
    }, true);
    
    $pid = $process->start();
    
    


    위 코드는 프로세스를 실행하고 PID를 반환합니다.

    또한, 프로세스가 종료된 후 PID를 반환받으려면, 프로세스의 종료 이벤트를 처리할 수 있습니다.

    #hostingforum.kr
    php
    
    $process = new SwooleProcess(function ($worker) {
    
        // 프로세스 실행 코드
    
    }, true);
    
    $pid = $process->start();
    
    $process->on('exit', function ($worker, $workerId, $code) use (&$pid) {
    
        $pid = $workerId;
    
    });
    
    


    위 코드는 프로세스가 종료되었을 때 PID를 반환합니다.

    이러한 방법 중 하나를 사용하여 프로세스가 종료된 후 PID를 반환받을 수 있습니다.

    2025-03-12 22:21

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

검색

게시물 검색