Files
kiri-http-server/State.php
T

60 lines
1.1 KiB
PHP
Raw Permalink Normal View History

2022-01-09 03:49:02 +08:00
<?php
2022-01-10 11:39:55 +08:00
namespace Kiri\Server;
2022-01-09 03:49:02 +08:00
use Kiri\Abstracts\Component;
2022-06-16 17:49:06 +08:00
use Kiri\Server\Abstracts\TraitServer;
2022-01-09 03:49:02 +08:00
use Swoole\Process;
2023-12-12 10:56:42 +08:00
use function config;
2022-01-09 03:49:02 +08:00
class State extends Component
{
2023-12-12 15:35:34 +08:00
use TraitServer;
public array $servers = [];
/**
* @return void
*/
public function init(): void
{
2025-12-18 15:39:40 +08:00
$this->servers = config('servers.server.ports');
2023-12-12 15:35:34 +08:00
}
/**
* @return bool
* @throws
*/
public function isRunner(): bool
{
$ports = $this->sortService($this->servers);
foreach ($ports as $config) {
if (checkPortIsAlready($config['port'])) {
return true;
}
}
return false;
}
/**
* @param $port
* @throws
*/
public function exit($port): void
{
if (!($pid = checkPortIsAlready($port))) {
return;
}
while (checkPortIsAlready($port)) {
Process::kill($pid, 0) && Process::kill($pid, SIGTERM);
usleep(300);
}
}
2022-01-09 03:49:02 +08:00
}