Start the process, it is an example to wait until the end.
information of stdout and stderr are output to the buffer.
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);
}
If you want to run the script, you can run in execFile function.
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);
}
You can use the spawn function to generate a new child process.
To wait for the generated child process to finish use the wait method.
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);
}
You can run the test with the following command.
composer install
composer test