Supervisor 部署

2020-03-05  本文已影响0人  奇奇又怪怪

Supervisor 是 Linux/Unix 系统下的一个进程管理工具。可以很方便的监听、启动、停止和重启一个或多个进程。通过 Supervisor 管理的进程,当进程意外被 Kill 时,Supervisor 会自动将它重启,可以很方便地做到进程自动恢复的目的,而无需自己编写 shell 脚本来管理进程

  1. 安装 Supervisor

# 安装 epel 源,如果此前安装过,此步骤跳过

yum install -y epel-release

yum install -y supervisor

  1. 创建一个配置文件

cp /etc/supervisord.conf /etc/supervisord.d/supervisord.conf

  1. 编辑新复制出来的配置文件 /etc/supervisord.d/supervisord.conf,并在文件结尾处添加以下内容后保存文件

# 新建一个应用并设置一个名称,这里设置为 hyperf

[program:hyperf]

# 设置命令在指定的目录内执行

directory=/var/www/hyperf/

# 这里为您要管理的项目的启动命令

command=php ./bin/hyperf.php start

# 以哪个用户来运行该进程

user=root

# supervisor 启动时自动该应用

autostart=true

# 进程退出后自动重启进程

autorestart=true

# 进程持续运行多久才认为是启动成功

startsecs=1

# 重试次数

startretries=3

# stderr 日志输出位置,标准错误日志

stderr_logfile=/var/www/hyperf/runtime/stderr.log

# stdout 日志输出位置,标准输出日志

stdout_logfile=/var/www/hyperf/runtime/stdout.log

  1. 启动 Supervisor

supervisord -c /etc/supervisord.d/supervisord.conf

因为supervisor服务不能以daemon运行

  1. 使用 supervisorctl 管理项目

# 启动 hyperf 应用

supervisorctl start hyperf

# 重启 hyperf 应用

supervisorctl restart hyperf

# 停止 hyperf 应用

supervisorctl stop hyperf 

# 查看所有被管理项目运行状态

supervisorctl status

# 重新加载配置文件

supervisorctl update

# 重新启动所有程序

supervisorctl reload

  1. 当用supervisor监护进程时,被监护进程不能是守护进程,这是由于守护进程通常会在fork完子进程后就让父进程”结束生命”,也即由supervisor创建的父进程退出,此时,supervisor无法再监护已退出进程创建出来的子进程
上一篇 下一篇

猜你喜欢

热点阅读