评论

收藏

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

开发技术 开发技术 发布于:2021-08-20 11:42 | 阅读数:223 | 评论:0

本文实例讲述了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[1] == 'start') {
    $this->start();
  }else if($argv[1] == '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

关注下面的标签,发现更多相似文章