Workerman Notes-php는 데몬 프로세스를 생성합니다.

WBOY
풀어 주다: 2016-07-29 08:51:04
원래의
1732명이 탐색했습니다.

data-id="1190000005056078" data-license="sa">

사용기능

<code>pcntl_fork();//创建子进程
posix_setsid();//设置当前进程为进程组长

posix_getpid();//获取进程id</code>
로그인 후 복사

근로자 중위 일반 프로세스

<code>/**
 * Run as deamon mode.
 *
 * @throws Exception
 */
protected static function daemonize()
{
    if (!self::$daemonize) {
        return;
    }
    /**
     * 重设文件权限掩码
     * 子进程从父进程继承了文件权限
     * 若子进程不涉及到文件创建,可取消
     */
    umask(0);
    $pid = pcntl_fork();//创建子进程
    if (-1 === $pid) {
        throw new Exception('fork fail');
    } elseif ($pid > 0) {
        exit(0); //父进程退出
    }
    /**
     * 更改子进程为进程组长
     * 使子进程摆脱父进程控制
     */
    if (-1 === posix_setsid()) {
        throw new Exception("setsid fail");
    }
    // Fork again avoid SVR4 system regain the control of terminal.
    $pid = pcntl_fork();
    if (-1 === $pid) {
        throw new Exception("fork fail");
    } elseif (0 !== $pid) {
        exit(0);
    }
}</code>
로그인 후 복사

기타 설명

기본 개념

데몬 프로세스: Linux의 백그라운드 서비스 프로세스입니다. 이는 일반적으로 제어 터미널과 독립적이며 주기적으로 일부 작업을 수행하거나 발생하는 특정 이벤트를 처리하기 위해 기다리는 수명이 긴 프로세스입니다. 데몬은 시스템이 부팅될 때 시작되고 시스템이 종료될 때 종료되는 경우가 많습니다.

프로세스 그룹: 하나 이상의 프로세스 모음입니다. 프로세스 그룹은 프로세스 그룹 ID로 고유하게 식별됩니다. 프로세스 번호(PID) 외에 프로세스 그룹 ID도 프로세스의 필수 속성입니다. 각 프로세스 그룹에는 리더 프로세스가 있으며, 리더 프로세스의 프로세스 번호는 프로세스 그룹 ID와 같습니다. 그리고 프로세스 그룹 ID는 그룹 리더 프로세스 종료에 영향을 받지 않습니다.

세션 주기: 세션은 하나 이상의 프로세스 그룹의 모음입니다. 일반적으로 세션은 사용자가 로그인할 때 시작되고 사용자가 로그아웃할 때 종료됩니다. 이 기간 동안 사용자가 실행하는 모든 프로세스는 이 세션에 속합니다.

프로세스 생성

  1. 하위 프로세스를 포크하고 상위 프로세스가 종료됩니다

  2. 하위 프로세스를 그룹 리더 프로세스로 변경

  3. 현재 디렉터리를 루트 디렉터리(chdir())로 변경

  4. 파일 권한 마스크 재설정

  5. 파일 설명자 닫기

  6. 데몬 종료, SIGCHLD 신호 처리

신호 처리

//TODO

참고 자료

데몬 프로세스의 PHP 구현

위 내용은 프로세스의 측면을 포함하여 Workerman Notes-php 생성 데몬 프로세스를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿