This commit is contained in:
2026-07-07 22:59:28 +08:00
parent 115273e5a4
commit 5c1282959c
+41 -33
View File
@@ -212,39 +212,47 @@ if (!function_exists('call')) {
} }
if (!function_exists('checkPortIsAlready')) { if (!function_exists('checkPortIsAlready')) {
/** /**
* @param $port * @param $port
* @return bool|string * @return bool|string
* @throws */
*/ function checkPortIsAlready($port): bool|string
function checkPortIsAlready($port): bool|string {
{ $port = (int)$port;
if (!Kiri::getPlatform()->isLinux()) { if ($port <= 0) {
exec("lsof -i :" . $port . " | grep -i 'LISTEN' | awk '{print $2}'", $output); return FALSE;
if (empty($output)) }
return FALSE;
$output = explode(PHP_EOL, $output[0]); if (!Kiri::getPlatform()->isLinux()) {
return $output[0]; exec("lsof -i :" . $port . " | grep -i 'LISTEN' | awk '{print $2}'", $output);
} if (empty($output)) {
return FALSE;
$serverPid = file_get_contents(storage('.swoole.pid')); }
if (!empty($serverPid) && shell_exec('ps -ef | grep ' . $serverPid . ' | grep -v grep')) { $output = explode(PHP_EOL, $output[0]);
Process::kill($serverPid, 0) && Process::kill($serverPid, SIGTERM); return $output[0];
} }
exec('netstat -lnp | grep ' . $port . ' | grep "LISTEN" | awk \'{print $7}\'', $output); exec('netstat -lnp 2>/dev/null | grep :' . $port . ' | grep "LISTEN" | awk \'{print $7}\'', $output);
if (empty($output)) { if (empty($output)) {
return FALSE; exec('ss -ltnp 2>/dev/null | grep :' . $port . ' | sed -n \"s/.*pid=\\([0-9]*\\).*/\\1/p\"', $output);
} }
return explode('/', $output[0])[0]; if (empty($output)) {
} return FALSE;
}
}
$pid = trim((string)$output[0]);
if (str_contains($pid, '/')) {
$pid = explode('/', $pid)[0];
}
return $pid !== '' ? $pid : FALSE;
}
}
if (!function_exists('set_env')) { if (!function_exists('set_env')) {