QPM全名是 Quick Process Management Framework for PHP. PHP 是强大的web开发语言,以至于大家常常忘记PHP 可以用来开发健壮的命令行(CLI)程序以至于daemon程序。 而编写daemon程序免不了与各种进程管理打交道。QPM正式为简化进程管理而开发的类库。QPM的项目地址是: https://github.com/Comos/qpm

环境要求

  1. *nix系统。由于QPM的核心功能是基于pcntl扩展的,无法用于windows系统。
  2. 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相关推荐

  1. centos 查找nginx_centos7 nginx安装/启动/进程状态/杀掉进程

    1.安装 如果找不wget请安装,命令:yum -y install wget 2.安装成功后nginx的几个默认目录 输入命令: whereis nginx 执行目录:/usr/sbin/nginx ...

  2. pstack 安装linux_linux下的进程堆栈查看工具pstack

    pstack在linux上是一个非常有用的工具,可以查看进程内部调用函数的信息.可惜的是在ubuntu10.10版本中没有找到这个工具.无奈,只能下载尝试编译了. 首先安装编译环境,使用如下命令: a ...

  3. Supervisor安装、管理守护进程

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  4. ubuntu 18 安装supervisor程序实现进程守护

    1.sudo apt-get install supervisor 或 sudo pip install supervisor 2.安装完毕后,会生成/etc/supervisor/conf.d目录, ...

  5. pstack 安装linux_linux下跟踪进程调用栈strace pstack gstack

    pstack PID gstack PID top -H -p PID 引子: 1.在Linux系统中,进程状态除了我们所熟知的TASK_RUNNING,TASK_INTERRUPTIBLE,TASK ...

  6. 「超算」spack安装依赖包时进程缓慢的问题

    实验室的服务器没有梯子www,如果再来一次我会选择搭梯子,而不是以下的解决方法.因为这样做,我安装了四个小时.Orz 我的解决方法 在本地添加建一个文件夹,作为spack本地的mirrors,命令如下 ...

  7. 域环境下 如何永久关闭 QQ 逼你安装“安全防护更新进程”的窗口?

    方式一--通过组策略 共需要限制三处QQ程序,不是限制QQ.exe本身,而是限制主程序的更新程序和安全防护更新程序     C:\Program Files (x86)\Tencent\QQ\txup ...

  8. SQL Server 2000安装时不出现安装界面,进程中存在解决

    在XP和Server 2003系统中安装SQL Server 2000过程中,点击安装后,一直不出现安装界面,查看进程中也有,一直无反应. 解决办法: 首先重新启动机器,或者任务管理器里面结束2个sq ...

  9. inno setup安装之前关闭mysql_innosetup安装之前关闭进程

    InnoSetup覆盖安装的时候可能会因为源程序正在运行而安装失败,以下脚本能够关闭原运行进程. [code] // 安装前检查关闭**进程 function InitializeSetup():Bo ...

最新文章

  1. Swift3.0语言教程获得一个公共的前缀
  2. angr学习笔记(1)
  3. Apache配置网站根目录
  4. VA Code编写html(1)
  5. Apache下PHP Loaded Configuration File None 解决方法
  6. iOS 多页面跳转同一页面时数据处理
  7. 广州软件性能测试培训,Loadrunner企业级性能测试课程 广州八神软件性能测试实战教程 炼数性能测试视频...
  8. 交换两个变量的值(4种方法)
  9. Intellij IDEA 2016 使用
  10. 记账系统java web
  11. Tomcat 9安装配置教程
  12. 5G接入网学习:回顾电调天线
  13. 十大程序员最实用的技术社区网站
  14. 【Unity】制作动画
  15. [Kaggle实战] Titanic 逃生预测 (1) - 项目起步
  16. Python获取拥有100万+关注的CSDN公众数据, 发现最关心的竟不是技术,而是…
  17. 【再也不怕pdf转换了】使用Python实现PDF扫描件生成DOCX或EXCEL
  18. 单片机三角波c语言程序,三角波单独发生 单片机程序
  19. HDU 6578. Blank (DP)
  20. python中类的self到底是什么

热门文章

  1. LNMP源码编译安装及一键部署LNMP架构
  2. 信息安全渗透测试都需要学习哪些内容?
  3. 三年硬件工程师薪水_硬件工程师薪资虚高,你认可吗?
  4. 3.GMM模型-EM算法
  5. access 知乎 窗体_我的Access自学之路(3)
  6. 连接为ws开头的url Python爬取websocket数据过程示范
  7. 服务器系统快照备份,云服务器如何设置快照备份
  8. iphoneX 弹性滚动 黑色背景问题
  9. 华为鸿蒙系统兼容测试方法
  10. 时间序列的自回归模型—从线性代数的角度来看