diff --git a/Abstracts/ProcessManager.php b/Abstracts/ProcessManager.php deleted file mode 100644 index b15fff3..0000000 --- a/Abstracts/ProcessManager.php +++ /dev/null @@ -1,172 +0,0 @@ - */ - private array $_process = []; - - - /** @var array $runner */ - private array $runner = []; - - /** - * @return void - * @throws Exception - */ - public function init(): void - { - on(OnServerBeforeStart::class, [$this, 'OnServerBeforeStart']); - } - - - /** - * @param OnServerBeforeStart $beforeStart - * @return void - */ - public function OnServerBeforeStart(OnServerBeforeStart $beforeStart): void - { - $server = Kiri::getDi()->get(ServerInterface::class); - foreach ($this->_process as $custom) { - $this->runner[$custom->getName()] = new Process(function (Process $process) use ($custom) { - $this->extracted($custom, $process); - }, - $custom->getRedirectStdinAndStdout(), - $custom->getPipeType(), - $custom->isEnableCoroutine() - ); - $server->addProcess($this->runner[$custom->getName()]); - } - } - - /** - * @param string|OnProcessInterface|BaseProcess $custom - * @throws - */ - public function add(string|OnProcessInterface|BaseProcess $custom): void - { - if (is_string($custom)) { - $custom = Kiri::getDi()->get($custom); - } - - if (isset($this->_process[$custom->getName()])) { - throw new Exception('Process(' . $custom->getName() . ') is exists.'); - } - - $this->_process[$custom->getName()] = $custom; - } - - - /** - * @return void - */ - public function shutdown(): void - { - foreach ($this->runner as $process) { - Process::kill($process->pid, 0) && Process::kill($process->pid, 15); - } - } - - - /** - * @param BaseProcess $customProcess - * @return Closure - */ - public function resolve(BaseProcess $customProcess): Closure - { - return static function (Process $process) use ($customProcess) { - $this->extracted($customProcess, $process); - }; - } - - - /** - * @param string|null $name - * @return null|Process - */ - public function get(?string $name = null): ?Process - { - return $this->runner[$name] ?? null; - } - - - /** - * @return void - */ - public function stop(): void - { - foreach ($this->runner as $process) { - Process::kill($process->pid, 0) && Process::kill($process->pid, 15); - } - } - - - /** - * @param array|null $processes - * @return void - * @throws Exception - */ - public function batch(?array $processes): void - { - if (empty($processes)) { - return; - } - foreach ($processes as $process) { - $this->add($process); - } - } - - - /** - * @param string $message - * @param string $name - * @return void - */ - public function push(string $name, string $message): void - { - $this->runner[$name]?->write($message); - } - - /** - * @param mixed $custom - * @param Process $process - * @return void - * @throws Kiri\Exception\ConfigException - * @throws ReflectionException - */ - public function extracted(mixed $custom, Process $process): void - { - set_env('environmental', Kiri::PROCESS); - $system = sprintf('[%s].Custom Process', \config('id', 'system-service')); - $this->logger->alert($system . ' ' . $custom->getName() . ' start.'); - if (Kiri::getPlatform()->isLinux()) { - $process->name($system . '[' . $process->pid . '].' . $custom->getName()); - } - $custom->onSigterm()->process($process); - } - - -} diff --git a/Abstracts/TraitServer.php b/Abstracts/TraitServer.php index 1a82f12..6fec4de 100644 --- a/Abstracts/TraitServer.php +++ b/Abstracts/TraitServer.php @@ -64,7 +64,7 @@ trait TraitServer private function genProcess(BaseProcess $name): Process { return new Process(function (Process $process) use ($name) { - $process->name($name->getName()); + $process->name('[' . \config('id','system-service') . ']' . $name->getName()); $name->onSigterm()->process($process); }, $name->getRedirectStdinAndStdout(),