php实现简单的守护进程创建、开启与关闭操作
程序员文章站
2022-05-25 23:02:15
本文实例讲述了php实现简单的守护进程创建、开启与关闭操作。分享给大家供大家参考,具体如下:
前提要安装有pcntl扩展,可通过php -m查看是否安装
<...
本文实例讲述了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
上一篇: 使用express来代理服务的方法
下一篇: php链式操作的实现方式分析