1、执行安装命令
yum install supervisor
pip安装
pip install supervisor
easy_install supervisor
2、配置Supervisor
a.创建文件夹和配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
b.修改vim /etc/supervisor/supervisord.conf文件内容
在文件结尾[include]节点处
把;files = relative/directory/*.ini
改为files = conf.d/*.conf
c.执行supervisorctl reload命令使配置文件生效。
d.在/etc/supervisor/下创建conf.d文件夹,及ProjectName.conf(以项目名称命名的)
e.打开laravel.conf文件,添加内容如下:
[program:laravel]
process_name=%(program_name)s_%(process_num)02d
command=/usr/local/php/bin/php /data/wwwroot/laravel/artisan queue:listen --tries=3
autostart=true
autorestart=true
user=www
numprocs=2
redirect_stderr=true
stdout_logfile=/data/wwwlogs/worker.log
3、运行supervisord,查看是否生效,执行以下命令:
#运行
supervisord -c /etc/supervisor/supervisord.conf
#查看进程 (ps -ef | grep ProjectName)
ps -ef|grep laravel
4、配置supervisord开机启动
a.在指定目录下创建文件supervisord.service
vim /usr/lib/systemd/system/supervisord.service
b.输入以下内容:
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
c.执行以下命令:
systemctl enable supervisord
d.验证是否为开机启动:
#提示 enabled 表示成功
systemctl is-enabled supervisord
5、常用命令
service supervisord start #启动
service supervisord stop #停止
service supervisord status #状态
supervisorctl shutdown #关闭所有任务
supervisorctl stop|start program_name #启动或停止服务
supervisorctl status #查看所有任务状态
修改了配置文件后要使用其生效使用下列命令:
supervisorctl update # 更新supervisor的配置
supervisorctl reload # 重新加载项目到内存中
supervisorctl restart all # 不管当前是已经关闭还是正在运行
supervisor 配置完毕,使用supervisorctl reload 和supervisorctl update 启动时候报错
先启动,然后再reload和update
supervisord -c /etc/supervisord.conf
如未启动请在服务器控制台执行systemctl start supervisord命令启动;
解决方法使用下面命令启动
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
卸载:
yum -yremovesupervisor