hhpack / process
为 Hack 服务的进程实用库
1.6.0
2019-04-15 03:39 UTC
Requires
- hhvm: >=3.21.0
- hhvm/hhvm-autoload: ^2.0
- hhvm/hsl: ^4.1
Requires (Dev)
- facebook/fbexpect: ^2.5
- hhvm/hacktest: ^1.5
This package is auto-updated.
Last update: 2024-09-15 19:42:45 UTC
README
基本用法
启动进程,以下示例等待其结束。
stdout 和 stderr 的信息输出到缓冲区。
use HHPack\Process; <<__EntryPoint>> async function main() : Awaitable<noreturn> { $result = await Process\exec('hh_client restart'); $result->stdout()->display(); $result->stderr()->display(); $result = await Process\exec('hh_client check --json'); $result->display(); exit(0); }
脚本执行
如果您想运行脚本,可以在 execFile 函数中运行。
use HHPack\Process; <<__EntryPoint>> async function main() : Awaitable<noreturn> { $result = await Process\execFile('/path/to/example.hh', [ 'a', 'b' ]); $result->stdout()->display(); $result->stderr()->display(); exit(0); }
手动控制进程
您可以使用 spawn 函数生成新的子进程。
要等待生成的子进程完成,请使用 wait 方法。
use HHPack\Process; use HHPack\Process\ProcessOptions; <<__EntryPoint>> async function pipe_example() : Awaitable<noreturn> { $options = new ProcessOptions(); $options->stdout(new Stdout()); $options->stderr(new Stderr()); using ($p = Process\spawn('hh_client restart', [], $options)) { await $p->wait(); } exit(0); }
运行测试
您可以使用以下命令运行测试。
composer install
composer test