侧边栏壁纸
博主头像
DOKI SEKAI博主等级

行动起来,活在当下

  • 累计撰写 114 篇文章
  • 累计创建 38 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

Supervisor 管理与自动启动配置文档

君
2025-01-11 / 0 评论 / 0 点赞 / 10 阅读 / 8182 字

Supervisor 管理与自动启动配置文档

1. 安装 Supervisor

首先,确保已经安装了 supervisord。对于 CentOS 或 RHEL 系统,可以通过以下命令安装:

sudo yum install supervisor

对于 Ubuntu 或 Debian 系统:

sudo apt-get install supervisor

2. 配置文件路径

supervisord 的配置文件通常位于以下路径:

  • 全局配置文件/etc/supervisord.conf
  • 单个程序的配置文件/etc/supervisord.d/
示例配置文件/etc/supervisord.d/your_program.conf):
[program:your_program]
command=/path/to/your/application
autostart=true      # 自动启动
autorestart=true    # 自动重启
stderr_logfile=/data/wwwRoot/pro_dmw-logger/logs/dmw-logger_stderr.log  # 错误日志
stdout_logfile=/data/wwwRoot/pro_dmw-logger/logs/dmw-logger_stdout.log  # 正常日志

3. 常用 supervisorctl 命令

supervisorctl 是与 supervisord 交互的命令行工具,常用于管理进程。

  • 查看所有进程状态

    supervisorctl status
    
  • 启动指定进程

    supervisorctl start <program_name>
    
  • 停止指定进程

    supervisorctl stop <program_name>
    
  • 重启指定进程

    supervisorctl restart <program_name>
    
  • 查看进程日志

    supervisorctl tail <program_name>
    
  • 重新读取配置文件(会重新读取所有配置,但不会立即应用):

    supervisorctl reread
    
  • 更新并应用配置(启动、停止新进程):

    supervisorctl update
    

4. 配置自动启动

为了使 supervisord 在系统重启后自动启动并运行配置的进程,执行以下操作:

  1. 设置进程自动启动:在每个进程的配置文件中,确保 autostart=true

    [program:your_program]
    command=/path/to/your/application
    autostart=true   # 启动时自动启动进程
    autorestart=true # 崩溃时自动重启
    
  2. 启用 supervisord 开机自启:确保 supervisord 在系统启动时自动启动。

    sudo systemctl enable supervisord
    
  3. 启动 supervisord 服务(如果尚未启动):

    sudo systemctl start supervisord
    

5. 重载配置

在修改配置文件后,需要重载配置以使更改生效。

  1. 重新读取配置文件

    supervisorctl reread
    

    该命令会读取新的配置文件,但并不会立即启动或停止进程。

  2. 更新并应用配置

    supervisorctl update
    

    该命令会启动、停止或重启进程,确保所有配置更改生效。

  3. 重启 supervisord 服务(适用于全局配置变动):

    sudo systemctl restart supervisord
    

6. 查看和编辑配置文件

  • 查看 supervisord 主配置文件

    cat /etc/supervisord.conf
    
  • 查看单个进程配置文件

    cat /etc/supervisord.d/your_program.conf
    
  • 编辑配置文件
    使用文本编辑器(如 vimnano)编辑配置文件:

    sudo vim /etc/supervisord.conf
    sudo vim /etc/supervisord.d/your_program.conf
    

7. 常见问题排查

  1. supervisord 未启动
    如果 supervisord 未启动,确保服务已启动并没有报错。

    启动服务:

    sudo systemctl start supervisord
    
  2. 进程日志目录不存在
    如果在配置文件中指定了日志路径,但日志目录不存在,supervisord 启动时会报错。确保日志目录存在并有正确的权限。

    例如:

    sudo mkdir -p /data/wwwRoot/pro_dmw-logger/logs
    sudo chown -R root:root /data/wwwRoot/pro_dmw-logger/logs
    
  3. unix:///var/run/supervisor/supervisor.sock no such file 错误
    如果遇到这个错误,表示 supervisord 进程未运行,或者无法访问 UNIX 套接字。可以检查 supervisord 服务的状态。

    查看 supervisord 服务状态:

    systemctl status supervisord
    
  4. supervisorctlsupervisord 无法连接
    如果遇到 unix:///var/run/supervisor/supervisor.sock no such file 错误,确保 supervisord 正在运行,并且套接字文件存在。

    启动 supervisord

    sudo systemctl start supervisord
    

8. 服务管理

  • 启动 supervisord 服务

    sudo systemctl start supervisord
    
  • 停止 supervisord 服务

    sudo systemctl stop supervisord
    
  • 重启 supervisord 服务

    sudo systemctl restart supervisord
    
  • 查看 supervisord 服务状态

    systemctl status supervisord
    
  • 禁用 supervisord 开机自启

    sudo systemctl disable supervisord
    

9. 进程管理

通过配置文件设置每个进程的运行方式(如自动启动、重启等),并使用 supervisorctl 命令进行管理。

  • 启动进程

    supervisorctl start <program_name>
    
  • 停止进程

    supervisorctl stop <program_name>
    
  • 重启进程

    supervisorctl restart <program_name>
    
  • 查看所有进程状态

    supervisorctl status
    

总结

  • supervisord 配置:通过配置文件控制进程的自动启动、重启等行为,确保进程在系统启动时自动启动并保持运行。
  • supervisorctl 命令:用于管理进程,包括启动、停止、重启进程,以及查看进程状态、日志等。
  • 自动启动配置:通过 autostartautorestart 配置选项,确保进程在系统启动时自动启动并在崩溃时自动重启。
  • 重载配置:修改配置文件后,使用 supervisorctl rereadsupervisorctl update 来重载并应用配置。
  • 日志管理:确保日志目录存在并具有适当权限,避免启动错误。

通过上述命令和配置管理,可以有效地管理和监控应用程序的进程,确保其稳定运行。

0

评论区