此包已被弃用且不再维护。未建议替代包。

此类是用于操作系统和PID文件的包装器

v2.0.6 2015-04-02 09:33 UTC

This package is auto-updated.

Last update: 2020-10-26 07:57:10 UTC


README

Latest Stable Version Build Status Scrutinizer Code Quality Code Coverage License

pid.php

致谢

此类由unreal4u(Camilo Sperberg)制作。 unreal4u.com/.

关于此类

  • 可用于验证进程是否已在运行
  • 平台独立:可用于Windows或Linux。在两者中,它们将调用特定于操作系统的函数来找出进程是否正在运行
  • 它不会检测之前的致命错误,但如果从创建以来已经过去了一段时间,则可以省略之前的PID文件

详细描述

此包将检查是否存在特定的PID文件,并根据此进行检查

创建PID文件。如果它已存在,则要求操作系统检查它是否仍然是一个正在运行的进程。如果由于任何原因,操作系统仍然认为进程仍在运行且时间过长,则类可以覆盖之前的PID文件(从而启动一个新实例)。当对象被销毁时,相应的PID文件也将被删除。

基本用法

include('src/unreal4u/pid.php');
try {
    $pid = new unreal4u\pid();
} catch (\Exception $e) {
    echo $e->getMessage();
}

if ($pid->isAlreadyRunning) {
    echo 'Your process is already running';
}
  • $pid->pid将显示PID号码。
  • 请参阅示例以获取更多选项和高级用法
  • 有一个注意事项:如果您在类的方法内使用此类,请确保在应该执行时执行析构函数:变量在方法执行完成后立即销毁,因此PID也会被销毁。为了确保这一点,请将PID类分配给类内的对象,这样,每当该对象被销毁时,此类也将被销毁。

Composer

此类支持(最好是)Composer安装。只需将以下部分添加到您的composer.json文件中

{
    "require": {
        "unreal4u/pid": "@stable"
    }
}

现在您可以通过执行以下操作来实例化一个新的pid类

require('vendor/autoload.php');

try {
    $pid = new unreal4u\pid();
} catch (\Exception $e) {
    // Do something
}

待定

  • 更好的(更彻底的)PHPUnit测试覆盖率。
  • 在Windows机器上彻底测试此类,在此期间已对许多UNIX改进。

版本历史

  • 1.0 :
    • 初始版本
  • 1.1:
    • 支持Windows PID检查
  • 1.3:
    • PHPUnit测试
    • 文档改进(实际上创建了此README)
    • 更多示例
  • 1.3.1:
    • 脚本现在设置最大执行时间
  • 1.4.0:
    • 类现在与composer兼容
  • 1.4.2:
    • 更好的文档
    • 更好的代码覆盖率
  • 1.4.5:
    • Travis-CI支持
    • 开始弃用旧编码标准
  • 2.0.0:
    • 类的基本功能的大幅重写
    • 现在可以按数组传递变量,而不是按变量传递
    • 类现在在发生错误时抛出(更多)异常
    • 关于新功能的新测试
    • 向后兼容性更改
      • 类在失败时会抛出异常,而不是静默失败
      • 函数 getTSpidFile() 重命名为 getTimestampPidFile()

联系作者