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:
-
首先删除apt-get主pipe版本:
sudo apt-get remove supervisor
-
杀死后端主pipe进程:
sudo ps -ef | grep supervisor
-
然后得到最新版本(apt-get版本是3.0a8):
sudo easy_install(pip install) supervisor==3.0b2
-
回应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_server
和supervisorctl
部分的值是否匹配。
请注意,这是一个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它。
我希望它有助于:)