#!/usr/bin/env php addDefinitions($definitions(AppConfig::fromEnvironment(getenv()))); return $builder->build()->get(ConsoleServices::class); }); $stopping = false; $stopRequested = static function () use (&$stopping): bool { if (function_exists('pcntl_signal_dispatch')) { pcntl_signal_dispatch(); } return $stopping; }; if (function_exists('pcntl_signal')) { $handler = static function () use (&$stopping): void { $stopping = true; }; pcntl_signal(SIGTERM, $handler); pcntl_signal(SIGINT, $handler); } $console = new Console( $services, STDOUT, STDERR, static function (int $seconds) use ($stopRequested): void { // Poll each second so a signal is honoured without waiting out the interval. for ($elapsed = 0; $elapsed < $seconds && !$stopRequested(); $elapsed++) { sleep(1); } }, $stopRequested, ); exit($console->run(array_slice($argv, 1)));