唐伯虎 发表于 2021-8-20 11:42:12

php实现简单的守护进程创建、开启与关闭操作

本文实例讲述了php实现简单的守护进程创建、开启与关闭操作。分享给大家供大家参考,具体如下:
前提要安装有pcntl扩展,可通过php -m查看是否安装


<?php
class Daemon {
private $pidfile;
function __construct() {
    $this->pidfile = dirname(__FILE__).'/daemontest.pid';
}
private function startDeamon() {
    if (file_exists($this->pidfile)) {
      echo "The file $this->pidfile exists.\n";
      exit();
    }
    $pid = pcntl_fork();
    if ($pid == -1) {
      die('could not fork');
    } else if ($pid) {
      echo 'start ok';
      exit($pid);
    } else {
    // we are the child
      file_put_contents($this->pidfile, getmypid());
      return getmypid();
    }
}
private function start(){
    $pid = $this->startDeamon();
    while (true) {
      file_put_contents(dirname(__FILE__).'/test.txt', date('Y-m-d H:i:s'), FILE_APPEND);
      sleep(2);
    }
}
private function stop(){
    if (file_exists($this->pidfile)) {
      $pid = file_get_contents($this->pidfile);
      posix_kill($pid, 9);
      unlink($this->pidfile);
    }
}
public function run($argv) {
    if($argv == 'start') {
      $this->start();
    }else if($argv == 'stop') {
      $this->stop();
    }else{
      echo 'param error';
    }
}
}
$deamon = new Daemon();
$deamon->run($argv);
启动


php deamon.php start
关闭


php deamon.php stop
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/fangdong88/article/details/78624659

文档来源:http://www.zzvips.com/article/183623.html
页: [1]
查看完整版本: php实现简单的守护进程创建、开启与关闭操作