Supervisor 进程管理
本机使用 Supervisor 管理多个项目的进程,配置文件位于 /usr/local/etc/supervisor.d/。
Factory 项目 (~/Funnlink/InnoShop/Factory)
| 进程 | 配置文件 | 说明 | 端口 |
|---|---|---|---|
| redis | redis.ini | Redis 服务 (共用) | 6379 |
| factory-horizon | factory-horizon.ini | 队列管理 (Laravel Horizon) | - |
| factory-reverb | factory-reverb.ini | WebSocket 服务 (Laravel Reverb) | 8080 |
| factory-scheduler | factory-scheduler.ini | 定时任务调度 | - |
innoshop.cn 项目 (~/Funnlink/InnoShop/Official/innoshop.cn)
| 进程 | 配置文件 | 说明 | 端口 |
|---|---|---|---|
| innocn-horizon | innocn-horizon.ini | 队列管理 (Laravel Horizon) | - |
| innocn-reverb | innocn-reverb.ini | WebSocket 服务 (Laravel Reverb) | 8081 |
| innocn-scheduler | innocn-scheduler.ini | 定时任务调度 | - |
前置条件
两个项目的 .env 都需要:
QUEUE_CONNECTION=redisBROADCAST_CONNECTION=reverb
常用命令
bash
supervisorctl status # 查看所有进程状态
supervisorctl restart all # 重启所有进程
supervisorctl restart factory-horizon # 重启 Factory 队列
supervisorctl restart innocn-horizon # 重启 innoshop.cn 队列
supervisorctl stop all # 停止所有进程
supervisorctl start all # 启动所有进程
supervisorctl tail factory-horizon # 查看实时日志日志位置
进程日志存放在各项目 storage/logs/ 目录下:
- Factory:
storage/logs/{horizon,reverb,scheduler}.log - innoshop.cn:
storage/logs/{horizon,reverb,scheduler}.log - Redis:
Factory/storage/logs/redis.log
注意事项
schedule:work是常驻进程,不需要配置系统 crontab- 生产环境建议使用 crontab +
schedule:run替代schedule:work - Horizon 仪表盘地址:
http://your-domain/horizon - 两个项目的 Reverb 端口不同:Factory 用 8080,innoshop.cn 用 8081
- Redis 是共用的,只需一个实例