# gflowd 参考

`gflowd` 用于管理本地 gflow 守护进程。

## 用法

```bash
gflowd [options] [command]
gflowd completion <shell>
```

## 常见示例

```bash
# 交互式初始化配置
gflowd init

# 使用默认值无交互初始化
gflowd init --yes

# 启动守护进程
gflowd up

# 只使用部分 GPU，并启用随机分配策略
gflowd up --gpus 0,2 --gpu-allocation-strategy random

# 无停机热重载
gflowd reload

# 重启并更新 GPU 限制
gflowd restart --gpus 0-3

# 查看状态或停止守护进程
gflowd status
gflowd down
```

## 全局选项

- `-c, --config <path>`：使用自定义配置文件
- `--cleanup`：清理配置文件
- `-v/-vv/-vvv/-vvvv`：提高守护进程日志级别
- `-q`：降低守护进程日志级别

## 子命令

### `gflowd init`

通过向导创建或更新配置文件。

```bash
gflowd init [--yes] [--force] [--advanced] [--gpus <indices>] [--host <host>] [--port <port>] [--timezone <tz>] [--gpu-allocation-strategy <strategy>]
```

选项：

- `--yes`：接受所有默认值，不进入交互
- `--force`：覆盖已存在的配置文件
- `--advanced`：配置通知等高级选项
- `--gpus <indices>`：限制调度器可见的 GPU，例如 `0,2` 或 `0-2`
- `--host <host>`：守护进程地址，默认 `localhost`
- `--port <port>`：守护进程端口，默认 `59000`
- `--timezone <tz>`：写入配置的时区，例如 `Asia/Shanghai` 或 `UTC`；传 `local` 表示保持未设置
- `--gpu-allocation-strategy <strategy>`：`sequential` 或 `random`

### `gflowd up`

在 tmux 会话中启动守护进程。

```bash
gflowd up [--gpus <indices>] [--gpu-allocation-strategy <strategy>]
```

### `gflowd reload`

无停机重载守护进程。

```bash
gflowd reload [--gpus <indices>] [--gpu-allocation-strategy <strategy>]
```

适合在不中断服务的情况下刷新正在运行的守护进程。

### `gflowd restart`

先停止，再重新启动守护进程。

```bash
gflowd restart [--gpus <indices>] [--gpu-allocation-strategy <strategy>]
```

适合可以接受完整重启的场景。

### `gflowd status`

显示守护进程是否在运行，以及健康检查是否通过。

```bash
gflowd status
```

### `gflowd down`

停止守护进程。

```bash
gflowd down
```

### `gflowd completion <shell>`

生成 shell 自动补全脚本。

```bash
gflowd completion bash
gflowd completion zsh
gflowd completion fish
```

## 说明

- `--gpus` 控制调度器为新任务分配哪些 GPU。
- `--gpu-allocation-strategy` 可选 `sequential` 或 `random`。
- `up`、`reload`、`restart` 三个子命令都支持相同的 GPU 相关覆盖参数。

## 另见

- [配置](../user-guide/configuration)
- [GPU 管理](../user-guide/gpu-management)
- [快速参考](./quick-reference)
