首先在服务器安装 Python
在通过 Python 安装 supervisor
创建配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
创建项目配置
cd /etc/supervisor/
mkdir supervisord.d
vi /etc/supervisor/supervisord.conf
#修改末尾配置信息
[include]
files = /etc/supervisor/supervisord.d/*.conf
vi /etc/supervisor/supervisord.d/laravel.conf
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /opt/...(项目绝对路径)/smg_admin/artisan queue:work redis --tries=1
autostart=true
autorestart=true
#注意运行的用户,可能会造成用户无权限写入日志,报错,退出进程
user=root
#运行几个进程
numprocs=8
redirect_stderr=true
#日志记入地址
stdout_logfile=/home/wwwlogs/laravel-work.log
给执行权限
chmod -R +x /etc/supervisor/supervisord.d
启动
使用supervisor进程管理命令之前先启动supervisord
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl status //查看所有进程的状态
supervisorctl stop all //停止
supervisorctl start all //启动
supervisorctl restart //重启
supervisorctl update //配置文件修改后使用该命令加载新的配置
supervisorctl reload //重新启动配置中的所有程序
关闭
/usr/bin/supervisorctl stop all
先关闭supervisor启动脚本,之后再关闭supervisord服务
ps ax | grep supervisor
kill -9 pid
查看进程
ps ax | grep supervisor
ps ax | grep artisan
重点 - 重点 - 重点
job里有改动需要重启job
重启 queue
php artisan queue:restart
宝塔使用supervisor
需要删除 php 禁用函数 pcntl_signal,pcntl_alarm
安装 redis 扩展
composer require predis/predis
如果使用 redis 队列
一定要先安装 redis 扩展
php 配置文件缓存
php artisan config:cache
php artisan config:clear
php artisan cache:clear