【supervisor】unix:///tmp/supervisor.sock no such file

文章讲述了Supervisor在Linux中安装后因/tmp目录的文件管理机制而遇到的问题,如何将配置文件中的socket路径、logfile和PIDfile改为/var/run以防止被系统自动删除,并解决启动Supervisor服务失败的问题。

问题

supervisor在正常安装完时运行正常,但隔一段时间后出现了故障,重启后报:
unix:///tmp/supervisor.sock no such file
原因是 supervisor 默认配置会把 socket 文件和 pid 守护进程生成在Linux的/tmp/目录下,/tmp/目录是缓存临时文件的目录,Linux会根据不同情况自动删除其下面的文件。比如缓存超时等,因此我们需要做如下修改:

具体操作如下:

vi /etc/supervisord.conf  

或者

 /etc/supervisor/supervisord.conf 

[unix_http_server]

;file=/tmp/supervisor.sock   ; (the path to the socket file)
file=/var/run/supervisor.sock   ; 修改为 /var/run 目录,避免被系统删除

[supervisord]

;logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)
logfile=/var/log/supervisor/supervisord.log ; 修改为 /var/log 目录,避免被系统删除
pidfile=/var/run/supervisord.pid ; 修改为 /var/run 目录,避免被系统删除

[supervisorctl]

; 必须和'unix_http_server'里面的设定匹配
;serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
serverurl=unix:///var/run/supervisor.sock ; 修改为 /var/run 目录,避免被系统删除

更新配置文件
supervisorctl update

但是提示

Redirecting to /bin/systemctl start supervisor.service
Failed to start supervisor.service: Unit supervisor.service not found.
 

再执行 supervisorctl 时提示:

[root@xxx run]# supervisorctl
unix:///var/run/supervisor.sock refused connection
supervisor> exit

最后

supervisord -c /etc/supervisord.conf  # 可以直接执行这条命令, 自动创建supervisor.sock

但我的supervisord.conf 文件在 /etc/supervisor/supervisord.conf
因此执行后启动成功

supervisord -c  /etc/supervisor/supervisord.conf 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值