📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项概述 #

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

适用场景

  • 生产环境
  • 使用 init 脚本管理
  • 与其他系统服务集成

自定义位置 #

# 自定义路径
pidfile: /opt/easysearch/run/easysearch.pid

适用场景

  • 非标准安装
  • 多实例部署
  • 特定目录结构

与系统集成 #

systemd 服务 #

# /etc/systemd/system/easysearch.service
[Service]
PIDFile=/var/run/easysearch/easysearch.pid
ExecStart=/usr/share/easysearch/bin/easysearch -p /var/lib/easysearch

Init 脚本 #

#!/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 #

# docker-compose.yml
services:
  easysearch:
    image: infinilabs/easysearch:latest
    volumes:
      - ./pid:/var/run/easysearch
    # easysearch.yml
    pidfile: /var/run/easysearch/easysearch.pid

进程管理 #

使用 PID 文件 #

# 读取进程 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) #

pidfile: /var/run/easysearch/easysearch.pid

生产环境(init) #

pidfile: /var/run/easysearch/pid

容器环境 #

# 通常不需要 PID 文件
pidfile: ""

多实例环境 #

# 实例 1
pidfile: /var/run/easysearch/node1.pid

# 实例 2
pidfile: /var/run/easysearch/node2.pid

注意事项 #

  1. 目录权限:确保指定目录存在且可写
  2. 文件覆盖:节点启动时会覆盖已存在的 PID 文件
  3. 文件清理:节点异常退出时 PID 文件可能残留
  4. 多实例:每个实例需要不同的 PID 文件路径
  5. 重启生效:修改此配置需要重启节点