php 记录pid文件,PHP Daemon开发-使用QPM管理PID文件

编写Daemon程序时,我们可以使用一个PID文件标记进程是否已经被创建,防止进程被重复启动,PID文件同时记录了进程号,以便于向进程发送信号。QPM中的pidfile正是用来管理PID文件的模块。

QPM 是一个PHP 进程管理框架,可用于简化Daemon开发,项目地址在:https://github.com/Comos/qpm

例子:

#pid_main.php

require_once 'qpm/pidfile/Manager.php';

use qpm\pidfile\Manager;

$man = new Manager(__FILE__.'.pid');

$man->start();

while(true) sleep(10);

?>

首次执行 php pid_main.php,我们能看到生成了 pid_main.php.pid文件,进程持续运行。 再次执行 php pid_main.php,脚本报错,提示进程已经存在。 Fatal error: Uncaught exception 'qpm\pidfile\Exception' with message 'process exists, no need to start a new one' in .../qpm/pidfile/Manager.php:41

此外,qpm\pid\Manager 还有getProcess 方法。

#pid_check.php

$man = new Manager(__DIR__.'/pid_main.php.pid');

echo $man->getProcess()->getPid();

?>

如果pid文件不存在或为空,则会抛出异常。 注意:getProcess方法获取的对象,并不100%确保是原进程。后续版本会改进这里的检测。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值