Ubuntu中的nginx和supervisor安装

我正在使用django-gunicorn-nginx设置按照这个教程http://ijcdigital.com/blog/django-gunicorn-and-nginx-setup/高级nginx设置,它正在工作。 然后我安装了pipe理员,configuration它,然后我重新启动我的服务器,并检查,它显示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 

我的主pipe设置有问题吗?

谢谢!

没有套接字文件可能意味着pipe理员没有运行。 它没有运行的原因可能是你的qlimp.conf文件中有一些错误。 如果你做了

 sudo service supervisor start 

你可以看到这是否是这种情况。 如果主pipe已经在运行,就会说。 如果发现错误,通常会比supervisorctl提供更有用的错误信息。

我遇到了同样的问题和你几次后,解决scheme:

  1. 首先删除apt-get主pipe版本:

      sudo apt-get remove supervisor 
  2. 杀死后端主pipe进程:

      sudo ps -ef | grep supervisor 
  3. 然后得到最新版本(apt-get版本是3.0a8):

     sudo easy_install(pip install) supervisor==3.0b2 
  4. 回应configuration文件(root权限):

     echo_supervisord_conf > /etc/supervisord.conf 

5.开始supervisord:

  sudo supervisord 

6.进入主pipe:

  sudo supervisorctl 

什么都做完了! 玩的开心!

尝试这个

 cd /etc/supervisor sudo supervisord sudo supervisorctl restart all 

你确定supervisord已经安装并正在运行吗? /var/run/supervisor.sock是否有套接字文件?

该错误表明supervisorctl (控制CLI)无法到达UNIX套接字与supervisord (守护进程)进行通信。

你也可以检查/etc/supervisor/supervisord.conf并查看unix_http_serversupervisorctl部分的值是否匹配。

请注意,这是一个Ubuntu级别的问题,而不是Python,Django或nginx的问题,因此这个问题可能属于ServerFault。

在Ubuntu 16+上,似乎是由于切换到systemd引起的,这个解决方法可能会修复新的服务器:

  # Make sure Supervisor comes up after a reboot. $ sudo systemctl enable supervisor # Bring Supervisor up right now. $ sudo systemctl start supervisor 

然后检查你的主pipeiconic.conf [我的例子]的状态

 $ sudo supervisorctl status iconic 

在这里输入图像说明

PS:确保gunicorn运行时不应该有任何问题。

错误可能是由于你没有特权。 也许你可以通过这种方式修复错误,打开你的terminal,inputvim /etc/supervisord.conf编辑文件,search行

[unix_http_server]
; file = / tmp / supervisor.sock; (套接字文件的path)
; chmod = 0700; 套接字文件模式(默认0700)

并删除string开头的分号;file=/tmp/supervisor.sock;chmod=0700 ,重启你的supervisord.Ibuild议你这样做。

确保在/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 

你可以做这样的事情:

 sudo touch /var/run/supervisor.sock sudo chmod 777 /var/run/supervisor.sock sudo service supervisor restart 

这绝对是工作,试试这个。

在我的情况下,主pipe没有运行。 要发现我运行的问题:

 sudo systemctl status supervisor.service 

问题是我有我的日志指向一个不存在的目录,所以我只需要创build它。

我希望它有助于:)