PHP 프로그램 데 몬 구현 방법 에 대한 자세 한 설명

일반 서버 프로그램 은 시스템 배경 에서 실행 되 는데 이것 은 일반적인 상호작용 명령 행 프로그램 과 큰 차이 가 있다.glibc 에 함수 daemon 이 있 습 니 다.이 함 수 를 호출 하면 현재 프로 세 스 를 터미널 에서 벗 어 나 데 몬 으로 만 들 수 있 습 니 다.구체 적 인 내용 은 man daemon 을 참조 하 십시오.PHP 에는 이 함수 가 잠시 없습니다.물론 관심 이 있다 면 PHP 확장 함 수 를 써 서 실현 할 수 있 습 니 다.
PHP 명령 행 프로그램 이 데 몬 을 처리 하 는 방법 은 두 가지 가 있 습 니 다.
nohup 사용nohup php myprog.php > log.txt &데 몬 프로 세 스 화 를 실현 합 니 다.
php myprog.php 를 단독으로 실행 합 니 다.ctrl+c 를 누 르 면 프로그램 실행 이 중단 되 고 현재 프로 세 스 와 하위 프로 세 스 를 kill 합 니 다.
php myprog.php&,이렇게 실행 하 는 프로그램 도 백 엔 드 로 전환 되 어 실행 되 지만,실제로는 터미널 에 의존 하 며,사용자 가 터미널 을 종료 할 때 프로 세 스 가 죽 습 니 다.
2.PHP 코드 를 사용 하여 구현

function daemonize() {
  $pid = pcntl_fork();
  if ($pid == -1) {
    die("fork(1) failed!
"); } elseif($pid > 0) { // exit(0); } // session posix_setsid(); $pid = pcntl_fork(); if ($pid == -1) { die("fork(2) failed!
"); } elseif($pid > 0) { // , exit(0); } } daemonize(); sleep(1000);
위의 코드 를 사용 하면 수호 프로 세 스 화 를 실현 할 수 있 습 니 다.PHP 프로그램 이 배경 으로 실행 되 어야 할 때 봉 인 된 함수 daemonize()를 한 번 만 호출 하면 됩 니 다.
주:표준 입 출력 의 방향 을 바 꾸 지 않 았 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기