我正在使用django-gunicorn-nginx设置,遵循本教程http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/ Upto nginx设置,它正在运行。然后我安装了主管,配置它然后我重启我的服务器并检查,它显示502坏网关。我正在使用Ubuntu 12.04 LTS
/etc/supervisor/conf.d/qlimp.conf
[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log
然后我重新启动主管并运行此命令$ supervisorctl start qlimp
并且我收到此错误
unix:///var/run/supervisor.sock no such file
我的主管设置有问题吗?
谢谢!
答案 0 :(得分:65)
没有套接字文件可能意味着主管没有运行。它未运行的原因可能是您的qlimp.conf文件中存在某种错误。如果你做了
sudo service supervisor start
你可以看出是否是这种情况。如果主管已经在运行,它会说。如果它正在捕获错误,它通常会给你一个比supervisorctl更有用的错误消息。
答案 1 :(得分:25)
我遇到了和你一样的问题,经过好几次,解决方案就出现了:
首先删除apt-get supervisor版本:
sudo apt-get remove supervisor
终止后端主管流程:
sudo ps -ef | grep supervisor
然后获取最新版本(apt-get版本为3.0a8):
sudo easy_install(pip install) supervisor==3.0b2
回显配置文件(root premission):
echo_supervisord_conf > /etc/supervisord.conf
5.开始监督:
sudo supervisord
6.进入supervisorctl:
sudo supervisorctl
一切都已完成!玩得开心!
答案 2 :(得分:17)
试试这个
cd /etc/supervisor
sudo supervisord
sudo supervisorctl restart all
答案 3 :(得分:12)
你确定supervisord已安装并正在运行吗?在/var/run/supervisor.sock
处是否存在套接字文件?
该错误表示控制CLI的supervisorctl
无法访问UNIX套接字以与守护进程supervisord
进行通信。
您还可以查看/etc/supervisor/supervisord.conf
,看看unix_http_server
和supervisorctl
部分的值是否匹配。
请注意,这是一个Ubuntu级别的问题,不是Python,Django或nginx的问题,因此这个问题可能属于ServerFault。
答案 4 :(得分:9)
在Ubuntu 16+上,它似乎是由切换到systemd引起的,这种解决方法可能会修复新服务器:
# Make sure Supervisor comes up after a reboot.
$ sudo systemctl enable supervisor
# Bring Supervisor up right now.
$ sudo systemctl start supervisor
然后检查你的主管的 iconic.conf [我的例子] 的状态
$ sudo supervisorctl status iconic
PS:确保gunicorn在跑步时不会有任何问题。
答案 5 :(得分:4)
错误可能是由于您没有权限。
也许您可以通过这种方式修复错误,打开终端,输入vim /etc/supervisord.conf
来编辑文件,搜索行
[unix_http_server]
; file = / tmp / supervisor.sock; (套接字文件的路径)
; chmod = 0700;套接字文件模式(默认为0700)
并删除字符串;file=/tmp/supervisor.sock
和;chmod=0700
开头的分号,重新启动你的supervisord。我建议你这样做。
答案 6 :(得分:2)
确保在/etc/supervisor.conf
中存在以下两个部分
[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
答案 7 :(得分:2)
您可以这样做: -
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo service supervisor restart
这绝对有用,试试这个。
答案 8 :(得分:2)
在我的情况下,主管没有运行。要发现我运行的问题:
sudo systemctl status supervisor.service
问题是我的日志指向了一个不存在的目录,因此我只需要创建它。
我希望它有所帮助:)
答案 9 :(得分:0)
touch /var/run/supervisor.sock
sudo supervisord -c /etc/supervisor/supervisord.conf
之后 supervisorctl重新启动所有
如果你想听主管端口
ps -ef | grep supervisord
如果你想杀死进程
kill -s SIGTERM 2503
答案 10 :(得分:0)
创建一个conf文件,并在下面添加行
请记住,要使用Nginx,必须禁用在安装Nginx时激活的系统启动时的自动启动。
https://askubuntu.com/questions/177041/nginx-disable-autostart
注意:所有主管程序必须处于“关闭守护程序”模式,才能与主管一起工作
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startretries=5
stopasgroup=true
stopsignal=QUIT
numprocs=1
startsecs=0
process_name=WebServer(Nginx)
stderr_logfile=/var/log/nginx/error.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/nginx/access.log
stdout_logfile_maxbytes=10MB
sudo supervisorctl reread && sudo supervisorctl update