supervisor for Mac
参考资料
- 基本安装 mac-服务管理-supervisor
异常问题
error: <class ‘socket.error’>, [Errno 13] Permission denied: file: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py line: 228
// 加上 sudo sudo supervisorctl -c /usr/local/etc/supervisord.ini
Unlinking stale socket /usr/local/var/run/supervisor.sock
find / -name supervisor.sock unlink /***/supervisor.sock // 根据上一步 find中查找的路径执行unlink
supervisorctl操作Connection refused
// 配置完应用之后,重新加载配置 sudo supervisorctl -c /usr/local/etc/supervisord.ini supervisorctl> reload
error: <class ‘socket.error’>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224
// 检查supervisord进程 ps aux|grep supervisord
// 结果是supervisord进程不在了,启动supervisord, supervisorctl的相关命令就可以执行了
不希望开机启动
// 每次启动,指定配置文件 sudo supervisord -c /usr/local/etc/supervisord.ini
supervisord 没有加上 sudo,supervisorctl即使加上 sudo,也会显示没有权限
➜ supervisor.d supervisord -c /usr/local/etc/supervisord.ini ➜ supervisor.d sudo supervisorctl -c /usr/local/etc/supervisord.ini project1-laravel-queue:project1-laravel-queue_00 BACKOFF unknown error making dispatchers for 'project1-laravel-queue_00': EACCES project1-laravel-queue:project1-laravel-queue_01 BACKOFF unknown error making dispatchers for 'project1-laravel-queue_01': EACCES
最终配置与启动
// 基本配置文件
/usr/local/etc/supervisord.ini
// 根据上面文件最后一行 incldue 新建目录
mkdir /usr/local/etc/supervisor.d
// 新建日志文件,同时修改所属关系
-rw-r--r-- 1 user1 staff 373 6 8 22:03 lumen-project1.ini
// lumen-project1.ini 内容
[program:project1-laravel-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /Users/user1/sites/project1/artisan queue:work redis --queue=high,default,low --sleep=5 --tries=2 --timeout=60 --daemon
autostart=true
autorestart=true
user=gujinhe
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/project1-queue.log
// 启动 supervisord
sudo supervisord -c /usr/local/etc/supervisord.ini
// 启动
sudo supervisorctl -c /usr/local/etc/supervisord.ini
// 正常启动会看到目前正在执行的各个配置好的进程
➜ supervisor.d sudo supervisorctl -c /usr/local/etc/supervisord.ini
project1-laravel-queue:project1-laravel-queue_00 RUNNING pid 30378, uptime 0:06:43
project1-laravel-queue:project1-laravel-queue_01 RUNNING pid 30377, uptime 0:06:43
supervisor>
// 帮助
supervisor> help
// 错误说明:
EACCES:访问/执行权限不足
EISDIR:目录权限不足,一般可能是日志权限问题,需要修改对应所属和分组;或者文件夹重名等问题
注意事项
- 每次修改event (实现了队列接口的)最好重启一次supervisor,否则无法及时生效
- 可以在数据库表 failed_jobs 中查看失败原因,也可以在supervisor中对应的日志中查看
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: