> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arupa.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 服务

> 了解内核如何从服务目录发现并安装服务。

内核会从 `ServiceDir` 中发现服务。服务包是一个 `.plg` 文件。内核会扫描该目录，读取每个包的 `info.yaml`，并根据服务配置决定是否启动它。

## 安装服务

Arupa 不支持通过管理 API 上传服务包。要安装一个服务：

1. 将其 `.plg` 包放入已配置的 `ServiceDir` 中。
2. 确保内核对 `ServiceTempDir` 具有写入权限，内核在加载服务包时会使用该目录。
3. 调用 `GET /api/service/discovered` 扫描该目录，或者重启 Arupa，使其在启动期间扫描该目录。
4. 如果该服务生效的 `Restart` 设置未启用自动启动，请手动启动它。

默认目录为：

```toml theme={null}
ServiceDir = "services"
ServiceTempDir = "tmp"
```

该包必须是一个有效的服务归档文件，且在根目录下带有 `info.yaml`。该元数据必须提供服务名称、版本、运行时类型（`wasm`、`grpc` 或 `static`）、契约版本，以及对于 `wasm` 和 `grpc` 服务而言的启动命令。扫描时会忽略非 `.plg` 包的文件。

关于自动启动、执行用户、访问组和服务参数，请参阅[服务配置](./config-services)。

## 通过 HTTP 管理服务

通过 HTTP 扫描、启动、停止和配置服务，属于服务管理能力的一部分，不在本页——请参阅[管理 API](./api)下的[服务管理](./api-service)，了解完整的接口列表，包括 `discovered`/`running`/`detail` 三种视图、启动/停止/重启操作，以及单个服务的配置和参数。与其他每个管理能力一样，只有在 `[API]` 表中启用了 `Service`，这些接口才会存在。
