Supervisor

1、参考

使用supervisor管理进程
使用supervisor来管理进程,麻麻再也不用担心进程的崩溃了
配置supervisor管理beego应用
linux下安装supervisor

2、supervisor的介绍

Supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统,通过配置可以实现自动监听进程状态,如果被监听的进程发生异常退出,Supervisor 会尝试再次启动该进程。

3、Supervisor的安装与配置

1)因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS6,Python2.6版本环境下,介绍Supervisor的安装与配置步聚:参考链接为https://www.jianshu.com/p/73a14fc69e51

2)supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

4、配置管理进程

进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中。

1)创建/etc/supervisor/config.d目录,用于存放进程管理的配置文件
在这里插入图片描述2)修改/etc/supervisor/supervisord.conf中的include参数,将/etc/supervisor/conf.d目录添加到include中在这里插入图片描述

5、启动与关闭supervisor

1、启动
supervisord  -c  /etc/supervisord.conf
2、关闭
ps -ef | grep super,然后kill -9 杀进程

注意,直接杀掉supervisor的主进程,被管理的进程仍然运行状态,所以记得先stop被管理的进程。
如果修改了各个配置文件,都需要重启supervisor。

6、编写配置文件

在 /etc/supervisor/config.d 文件夹下创建单个文件

[program:program_name]
directory=/opt/mutual # 项目目录
command=/opt/mutual/main web # 项目cmd启动命令
user=root # 用户
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
stdout_logfile=/opt/mutual/logs/api.log # 日志位置
stderr_logfile=/opt/mutual/logs/api_err.log # 错误日志位置
redirect_stderr=true
stdout_logfile_maxbytes=20MB # 日志大小
stdout_logfile_backups=10 # 日志数量
stopsignal=KILL
stopasgroup=true

7、系统命令

3个系统命令:supervisorctl、supervisord和echo_supervisord_conf
1)supervisorctl,是命令行管理工具,可以用来执行start、stop、restart等命令,来对这些子进程进行管理, 如

# 常用
supervisorctl update  (修改配置文件建议使用)只改动了某个配置文件,只想重载这个配置文件然后重启,不影响其他配置文件。
supervisorctl reread  (新加配置文件,建议使用)如果新添加了一个配置文件,此时update命令没用了,要用reread命令,重新读取配置文件。然后再update重启
supervisorctl restart program_name 重启某一进程

# 不常用
supervisorctl reload  (不建议)更新supervisorctl.conf,这直接重启supervisord进程,相当于重启了所有supervisor程序
supervisorctl status 查看守护的进程状态
supervisorctl stop program_name 停止某一进程 显示用stop停止掉的进程,用reload或者update都不会自动重启。
supervisorctl start program_name 启动某个进程

supervisorctl stop all 停止全部进程

supervisor 控制台命令

supervisorctl # 首先进入 supervisor 控制台
help # 查看帮助
reread # 然后重新读取配置:
update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)
status # 查看程序状态
start program_name # 启动 指定的程序
stop hbk_tomcat # 表示停止hbk_tomcat进程
start all # 开始所有配置,start、stop、restart
stop all # 表示停止所有进程
tail -f program_name # 查看 该程序的日志

2)supervisord-守护进程,运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启
3)echo_supervisord_conf用来生成默认的配置文件(默认配置文件,内容非常齐全且都有注释,适合用时查阅),用法是这样的

echo_supervisord_conf # 查看默认的配置文件
echo_supervisord_conf > test.conf # 复制使用默认的配置文件

8、常见问题

1、Amazon aws 安装不了

报错:

Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
No package supervisor available.
Error: Nothing to do

解决:

sudo amazon-linux-extras install epel

sudo yum install supervisor
2、Unlinking stale socket /var/run/supervisor.sock

直接删掉 unlink /var/run/supervisor.sock

3、unix:///tmp/supervisor.sock no such file

配置文件:/etc/supervisord.conf

serverurl=unix:///tmp/supervisor.sock
改成
serverurl=unix:///var/run/supervisor.sock
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值