安装和使用PHP进程管理框架 QPM
QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。QPM正式为简化进程管理而开发的类库。QPM的项目地址是: https://github.com/Comos/qpm
环境要求
- *nix系统。由于QPM的核心功能是基于pcntl扩展的,无法用于windows系统。
- PHP 5.4.x及以上版本,并且开启pcntl, posix。
安装并使用QPM
使用 Composer 安装QPM(推荐)
1) 安装Composer
Composer 是PHP用来管理软件包依赖关系的工具。使用Composer可以非常便利的实现依赖包的快速下载和安装。
使用以下命令,可以快速安装Composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
也可参考:Composer安装指南。
2) 在Composer配置文件中配置QPM
使用Composer的项目,在项目目录下通常有composer.json文件。
可参考如下配置。
{ "require": {"monolog/monolog": "1.0.*","comos/qpm":"0.3.*"}}
其中
"comos/qpm":"0.3.*"
表示依赖 comos/qpm 0.3.x版本。
3) 安装QPM
准备好composer.json, 执行 composer install 后,即可在 vendor/comos 找到qpm
4) 运行
运行前,脚本须先加载compser autoload.php文件。
例 test.php:
<?php
require __DIR__.'/vendor/autoload.php';
$pid = qpm\process\Process::current()->getPid();
echo "PID: $pid\n";
执行 php test.php,终端输出 PID: 11210 (进程号)。
直接下载QPM
1) 从github releases 下载最新稳定版本。
例如 0.3.0版本。
2) 解压到项目目录。
tar zxvf 0.3.0.tar.gz
3) 注册自己编写的autoloader并运行。
由于qpm遵循psr-4,需要依赖autoloading机制加载类,如果项目没有注册适合的autoloader,用户需要自行实现autoloader。
例如 test1.php:
<?phpspl_autoload_register(function ($class) {$prefix = 'qpm\\';$baseDir = __DIR__ . '/qpm-0.3.0/library';$len = strlen($prefix);if (strncmp($prefix, $class, $len) !== 0) {return;}$relativeClass = substr($class, $len);$file = $baseDir . str_replace('\\', '/', $relativeClass) . '.php';if (file_exists($file)) {require $file;}});$pid = qpm\process\Process::current()->getPid();echo "PID: $pid\n";
执行 php test1.php,终端输出 PID: 11210 (进程号)。
安装和使用PHP进程管理框架 QPM相关推荐
- centos 查找nginx_centos7 nginx安装/启动/进程状态/杀掉进程
1.安装 如果找不wget请安装,命令:yum -y install wget 2.安装成功后nginx的几个默认目录 输入命令: whereis nginx 执行目录:/usr/sbin/nginx ...
- pstack 安装linux_linux下的进程堆栈查看工具pstack
pstack在linux上是一个非常有用的工具,可以查看进程内部调用函数的信息.可惜的是在ubuntu10.10版本中没有找到这个工具.无奈,只能下载尝试编译了. 首先安装编译环境,使用如下命令: a ...
- Supervisor安装、管理守护进程
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...
- ubuntu 18 安装supervisor程序实现进程守护
1.sudo apt-get install supervisor 或 sudo pip install supervisor 2.安装完毕后,会生成/etc/supervisor/conf.d目录, ...
- pstack 安装linux_linux下跟踪进程调用栈strace pstack gstack
pstack PID gstack PID top -H -p PID 引子: 1.在Linux系统中,进程状态除了我们所熟知的TASK_RUNNING,TASK_INTERRUPTIBLE,TASK ...
- 「超算」spack安装依赖包时进程缓慢的问题
实验室的服务器没有梯子www,如果再来一次我会选择搭梯子,而不是以下的解决方法.因为这样做,我安装了四个小时.Orz 我的解决方法 在本地添加建一个文件夹,作为spack本地的mirrors,命令如下 ...
- 域环境下 如何永久关闭 QQ 逼你安装“安全防护更新进程”的窗口?
方式一--通过组策略 共需要限制三处QQ程序,不是限制QQ.exe本身,而是限制主程序的更新程序和安全防护更新程序 C:\Program Files (x86)\Tencent\QQ\txup ...
- SQL Server 2000安装时不出现安装界面,进程中存在解决
在XP和Server 2003系统中安装SQL Server 2000过程中,点击安装后,一直不出现安装界面,查看进程中也有,一直无反应. 解决办法: 首先重新启动机器,或者任务管理器里面结束2个sq ...
- inno setup安装之前关闭mysql_innosetup安装之前关闭进程
InnoSetup覆盖安装的时候可能会因为源程序正在运行而安装失败,以下脚本能够关闭原运行进程. [code] // 安装前检查关闭**进程 function InitializeSetup():Bo ...
最新文章
- Swift3.0语言教程获得一个公共的前缀
- angr学习笔记(1)
- Apache配置网站根目录
- VA Code编写html(1)
- Apache下PHP Loaded Configuration File None 解决方法
- iOS 多页面跳转同一页面时数据处理
- 广州软件性能测试培训,Loadrunner企业级性能测试课程 广州八神软件性能测试实战教程 炼数性能测试视频...
- 交换两个变量的值(4种方法)
- Intellij IDEA 2016 使用
- 记账系统java web
- Tomcat 9安装配置教程
- 5G接入网学习:回顾电调天线
- 十大程序员最实用的技术社区网站
- 【Unity】制作动画
- [Kaggle实战] Titanic 逃生预测 (1) - 项目起步
- Python获取拥有100万+关注的CSDN公众数据, 发现最关心的竟不是技术,而是…
- 【再也不怕pdf转换了】使用Python实现PDF扫描件生成DOCX或EXCEL
- 单片机三角波c语言程序,三角波单独发生 单片机程序
- HDU 6578. Blank (DP)
- python中类的self到底是什么