时间:2021-05-26
本文实例讲述了php实现简单的守护进程创建、开启与关闭操作。分享给大家供大家参考,具体如下:
前提要安装有pcntl扩展,可通过php -m查看是否安装
<?phpclass 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相关内容感兴趣的读者可查看本站专题:《PHP进程与线程操作技巧总结》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
php也是可以直接进行守护进程的启动与终止的,相对于shell来说会简单很多,理解更方便,当然了php的守护进程要实现自动重启还是要依赖于shell的cront
守护进程主进程创建子进程目的是:主进程有一个任务需要并发执行,那开启子进程帮我并发执行任务主进程创建子进程,然后将该进程设置成守护自己的进程关于守护进程需要强调
本文实例讲述了php脚本守护进程原理与实现方法。分享给大家供大家参考,具体如下:思路:1.while循环,若当前没有数据要操作可以休眠;2.crontab脚本每
php多进程实现PHP有一组进程控制函数(编译时需要–enable-pcntl与posix扩展),使得php能在nginx系统中实现跟c一样的创建子进程、使用e
较新的Mac设备都会默认预装SSH,不过SSH守护进程是默认禁用的。那么Mac如何通过终端开启/关闭SSH?下面就来一起学习如何通过终端指令来开启和关闭SS