supervisord进程管理工具

yum 安装

yum install epel-release yum install -y supervisor

 

easy_install安装

yum install -y python-setuptools

easy_install supervisor

echo_supervisord_conf >/etc/supervisord.conf

 

vim /etc/supervisord.conf可以看到如下

 

在/etc/supervisord.d 中新建配置文件

[program:AllJob]
process_name=%(program_name)s_%(process_num)02d
command=php /xzfct_project/fct_v2/artisan queue:work --sleep=3 --daemon --tries=6 --timeout=60
autostart=true
autorestart=true
user=www
numprocs=6
redirect_stderr=true
stdout_logfile=/var/log/Queue.log

 

supervisorctl restart all 重启

常用命令 

supervisorctl 是 supervisord的命令行客户端工具

supervisorctl status:查看所有进程的状态
supervisorctl stop es:停止es
supervisorctl start es:启动es
supervisorctl restart es: 重启es
supervisorctl update :配置文件修改后可以使用该命令加载新的配置
supervisorctl reload: 重新启动配置中的所有程序

 

 

踩过的坑

1、unix:///var/run/supervisor/supervisor.sock no such file

     问题描述:安装好supervisor没有开启服务直接使用supervisorctl报的错


     解决办法:supervisord -c /etc/supervisord.conf  重载配置:supervisorctl reload

 

2、command中指定的进程已经起来,但supervisor还不断重启

问题:

     command中启动方式为后台启动,导致识别不到pid,然后不断重启,
     本人使用的是elasticsearch,command                       
      指定的是$path/bin/elasticsearch -d,踩到的坑

解决办法

     supervisor无法检测后台启动进程的pid,而supervisor本身就是后台启动守护进程,
因此不用担心这个

3、启动了多个supervisord服务,导致无法正常关闭服务

    问题描述:

 问题描述:在运行supervisord -c /etc/supervisord.conf 之前,
    我直接运行过supervisord -c /etc/supervisord.d/xx.conf       

 

解决办法:

使用 ps -fe | grep supervisord 查看所有启动过的supervisord服务, kill相关的进程。

4.Another app is currently holding the yum lock; waiting for it to exit...

supervisord进程管理工具_第1张图片

解决办法 rm -f /var/run/yum.pid​​​​​​​ 

 

你可能感兴趣的:(Linux)