yum 安裝
todo 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 ,導致有些進程被多個superviord管理,無法正常關閉進程。
解決辦法: 使用 ps -fe | grep supervisord 查看所有啓動過的supervisord服務,
kill相關的進程。
4.Another app is currently holding the yum lock; waiting for it to exit...
解決辦法 rm -f /var/run/yum.pid