--- title: "进程 ID 文件配置" date: 2026-02-14 lastmod: 2026-02-14 description: "指定节点进程 ID 文件路径的配置说明" tags: ["进程配置", "文件配置", "运维配置"] summary: "配置项概述 # pidfile 配置项指定节点进程 ID(PID)文件的存储路径,用于进程管理和监控。 配置项 默认值 说明 pidfile “"(空) PID 文件路径 配置说明 # pidfile # 配置项作用:指定节点进程 ID 文件的存储位置。PID 文件包含运行中节点的进程 ID,便于进程管理工具定位和控制节点进程。 默认值:""(空字符串,不创建 PID 文件) 配置类型:静态配置 取值范围:有效的文件系统路径 配置格式: # 默认配置:不创建 PID 文件 pidfile: "" # 指定路径 pidfile: /var/run/easysearch/easysearch.pid # 使用相对路径 pidfile: ./pid 使用场景 # 不创建 PID 文件(默认) # # 默认配置 pidfile: "" 适用场景: 开发环境 使用 systemd 管理 使用其他进程管理机制 标准位置 # # Linux 标准位置 pidfile: /var/run/easysearch/pid 适用场景:" --- ## 配置项概述 `pidfile` 配置项指定节点进程 ID(PID)文件的存储路径,用于进程管理和监控。 | 配置项 | 默认值 | 说明 | |--------|--------|------| | `pidfile` | ""(空) | PID 文件路径 | --- ## 配置说明 ## pidfile **配置项作用**:指定节点进程 ID 文件的存储位置。PID 文件包含运行中节点的进程 ID,便于进程管理工具定位和控制节点进程。 **默认值**:`""`(空字符串,不创建 PID 文件) **配置类型**:静态配置 **取值范围**:有效的文件系统路径 **配置格式**: ```yaml # 默认配置:不创建 PID 文件 pidfile: "" # 指定路径 pidfile: /var/run/easysearch/easysearch.pid # 使用相对路径 pidfile: ./pid ``` --- ## 使用场景 ## 不创建 PID 文件(默认) ```yaml # 默认配置 pidfile: "" ``` **适用场景**: - 开发环境 - 使用 systemd 管理 - 使用其他进程管理机制 ## 标准位置 ```yaml # Linux 标准位置 pidfile: /var/run/easysearch/pid ``` **适用场景**: - 生产环境 - 使用 init 脚本管理 - 与其他系统服务集成 ## 自定义位置 ```yaml # 自定义路径 pidfile: /opt/easysearch/run/easysearch.pid ``` **适用场景**: - 非标准安装 - 多实例部署 - 特定目录结构 --- ## 与系统集成 ## systemd 服务 ```ini # /etc/systemd/system/easysearch.service [Service] PIDFile=/var/run/easysearch/easysearch.pid ExecStart=/usr/share/easysearch/bin/easysearch -p /var/lib/easysearch ``` ## Init 脚本 ```bash #!/bin/bash # /etc/init.d/easysearch PIDFILE=/var/run/easysearch/easysearch.pid start() { echo -n "Starting Easysearch: " /usr/share/easysearch/bin/easysearch -d -p $PIDFILE } ``` ## Docker ```yaml # docker-compose.yml services: easysearch: image: infinilabs/easysearch:latest volumes: - ./pid:/var/run/easysearch # easysearch.yml pidfile: /var/run/easysearch/easysearch.pid ``` --- ## 进程管理 ## 使用 PID 文件 ```bash # 读取进程 ID cat /var/run/easysearch/easysearch.pid # 输出: 12345 # 检查进程是否运行 ps -p $(cat /var/run/easysearch/easysearch.pid) # 停止进程 kill $(cat /var/run/easysearch/easysearch.pid) # 优雅停止 kill -TERM $(cat /var/run/easysearch/easysearch.pid) ``` --- ## 推荐配置 ## 生产环境(systemd) ```yaml pidfile: /var/run/easysearch/easysearch.pid ``` ## 生产环境(init) ```yaml pidfile: /var/run/easysearch/pid ``` ## 容器环境 ```yaml # 通常不需要 PID 文件 pidfile: "" ``` ## 多实例环境 ```yaml # 实例 1 pidfile: /var/run/easysearch/node1.pid # 实例 2 pidfile: /var/run/easysearch/node2.pid ``` --- ## 注意事项 1. **目录权限**:确保指定目录存在且可写 2. **文件覆盖**:节点启动时会覆盖已存在的 PID 文件 3. **文件清理**:节点异常退出时 PID 文件可能残留 4. **多实例**:每个实例需要不同的 PID 文件路径 5. **重启生效**:修改此配置需要重启节点