supervisor基本使用

本文详细介绍了如何使用supervisorctl进行项目管理和配置,包括查看状态、更新配置、重启服务等。重点讲解了在Linux中遇到的关于supervisor.sock路径问题的解决方案。

学习目标:

提示:这里可以添加学习目标

例如:

  • superviosor基本使用
  • supervisorctl常见问题
  • supervisorctl 更新

学习内容:

例如:
1、supervisorctl 客户端命令
2、问题解决:unix:///tmp/supervisor.sock no such file
3、问题解决:unix:///var/run/supervisor.sock no such file


学习产出:

提示:这里统计学习计划的总量
开发环境
laravel-worker.ini
指令将指示监控器运行 4个
正常运行展示如下
在这里插入图片描述

一、supervisorctl命令

- 查看所有被管理项目运行状态
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl status
laravel-worker:laravel-worker_00         RUNNING   pid 18403, uptime 0:02:17
laravel-worker:laravel-worker_01         RUNNING   pid 32718, uptime 20:31:44
laravel-worker:laravel-worker_02         RUNNING   pid 32719, uptime 20:31:44
laravel-worker:laravel-worker_03         RUNNING   pid 32720, uptime 20:31:44

- 更新加载配置文件
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl update

- 重新启动所有项目
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl reload

- 重新启动所有项目
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl reload

- 启动/停止 所有项目
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl start all
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl stop all

- 启动/停止 指定项目下的指定监控器
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl start laravel-worker:laravel-worker_00
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl stop laravel-worker:laravel-worker_03
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl status
laravel-worker:laravel-worker_00         RUNNING   pid 18403, uptime 0:10:57
laravel-worker:laravel-worker_01         RUNNING   pid 32718, uptime 20:40:24
laravel-worker:laravel-worker_02         RUNNING   pid 32719, uptime 20:40:24
laravel-worker:laravel-worker_03         STOPPED   Oct 27 02:22 P

- 查看项目监控器对应的Pid
[root@iZbp18brdnpqb20dqp8093Z www]# supervisorctl pid laravel-worker:laravel-worker_00

- 其他更多用法就不过多陈述可使用help,自己摸索
[root@iZbp18brdnpqb20dqp8093Z supervisord.d]# supervisorctl help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

二、问题解决 unix:///tmp/supervisor.sock no such file

/tmp 文件夹是liux运行时记录缓存的文件夹,用于加速二次打开文件的速度,在linux关机时会被系统删除
解决方法:
因为 /tmp 文件是linux指定的临时文件夹,那我们决定将 supervisor.sock文件记录在其他文件夹
1、找到supervisor的配置文件
supervisor 没有办法像普通进程那样systemctl restart xxx 重启
首先,我们找到supervisor的配置文件

[root@iZbp18brdnpqb20dqp8093Z supervisord.d]# whereis supervisor
supervisor: /etc/supervisor

找到我们的目标文件
在这里插入图片描述
进入文件将 /tmp/supervisor.sock 改为 /var/lib/supervisor/supervisord.sock,运行supervisorctl
在这里插入图片描述

三、问题解决unix:///var/run/supervisor.sock no such file

因为服务器停掉导致 /var/run目录下的supervisor.sock文件被删除,找不到导致报错

解决方法:
首先杀死进程

- 找到supervisord进程号
[root@iZbp18brdnpqb20dqp8093Z supervisord.d]# ps -ef | grep supervisord 

- 杀死supervisord进程
[root@iZbp18brdnpqb20dqp8093Z supervisord.d]# kill -9 PID

其次

-创建supervisor.sock
[root@iZbp18brdnpqb20dqp8093Z supervisord.d]# cd /var/run
[root@iZbp18brdnpqb20dqp8093Z run]# touch /var/run/supervisor.sock
- 这里需要注意需要给supervisor.sock授权
[root@iZbp18brdnpqb20dqp8093Z run]# chmod -R 777 supervisor.sock

运行一下命令

- 开启进程服务supervisor.sock
[root@iZbp18brdnpqb20dqp8093Z run]# supervisord -c /etc/supervisord.conf

注意在重启supervisor时,可能会报错,

[root@iZbp18brdnpqb20dqp8093Z run]# supervisord -c /etc/supervisord.conf
Unlinking stale socket /var/run/supervisord.sock

需要在杀死进程后执行

[root@iZbp18brdnpqb20dqp8093Z run]# unlink /var/run/supervisor.sock

原因是supervisor.sock 这个文件会被系统自动删除或者其他原因不存在,删除软连接就可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值