unix:///var/run/supervisor.sock no such file
I'm running Supervisord on my Ubuntu 14.04 server and everything works fine. I deploy using a git push and upon deployment I also need to restart my application server (gunicorn) which I can supposedly do using supervisorctl.
un my supervisord.conf, gunicorn is defined as follows:
[program:gunicorn]
command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app
directory=/home/imb/imb
autostart=true
autorestart=true
stdout_logfile=/tmp/gunicorn.log
redirect_stderr=true
stopsignal=QUITand I enabled supervisorctl like this:
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socketI started supervisor using
sudo supervisord -c /home/imb/imb/supervisord.confAs far as I understand I now should be able to restart gunicorn using the command supervisorctl restart gunicorn, but when I do that I get
$ supervisorctl restart gunicorn
unix:///var/run/supervisor.sock no such fileI checked and the file /var/run/supervisor.sock indeed doesn't exist, even though I'm sure supervisor is in fact running:
$ ps -A | grep supervisor
27211 ? 00:00:00 supervisordDoes anybody know why the /var/run/supervisor.sock file isn't created, even though supervisor is clearly running? All tips are welcome!
7 Answers
Alright, after messing around some more I found what I did wrong.
Turns out the lines for supervisorctl below, only tell supervisorctl where it can find the socket file.
[supervisorctl]
serverurl=unix:///var/run/supervisor.sockFurther above in the file there are two other lines which define where the file is actually created:
[unix_http_server]
file=/tmp/supervisor.sockAs you can see that created the socket file in /tmp/ while supervisorctl tried to read it from /var/run/. I changed the last line to file=/var/run/supervisor.sock and now it works beatifully.
I hope this answer might help someone else dealing with the same trouble.
Also, you can check out the link provided by @MariusMatutiae in the comments:
4For users who have the same entry for both
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock&
[unix_http_server]
file=/tmp/supervisor.sockfollow below steps to fix the problem -
- Delete .sock file from /tmp
- Run 'supervisord' command. This will recreate the sock file.
- Run 'supervisorctl -i' to check the status of the services.
Hope this helps you!
After too much struggling with this issue, with everybody telling me to just enable or restart which was not working. I finally found out the solution for me:
- First of all acknowledge that you have the main supervisor.conf file here:
/etc/supervisor/supervisor.conf - If you are in my case, you also have a project specific
.conffile in here:/etc/supervisor/conf.d/project.conf
Somehow supervisorctl was working fine but the weird thing is that doing service supervisor restart breaks everything and you get the error of OP.
The solution then is to:
- Rename
project.conftoproject.conf.tmp - Then
service supervisor restart(after whatsupervisorctlworks again) - You rename back your project conf file to
project.conf supervisorctl reread,supervisorctl update,supervisorctl restart all
vi /opt/conf/supervisord.conf
[supervisord]
nodaemon=true
[unix_http_server]
file=/var/run/supervisor.sock
; rpc interface for supervisorctl
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock
[program:program1]run supervisord
/usr/bin/supervisord -c /opt/conf/supervisord.confrun supervisorctl
/usr/bin/supervisorctl -c /opt/conf/supervisord.conf I had the problem that supervisord was running within a docker container. When I wanted to use the supervisorctl command the only response was unix:///var/run/supervisor.sock no such file.
The solution to my problem was that I had to execute the supervisorctl command as the root.
sudo supervisorctl
No more unix:///var/run/supervisor.sock no such file.
For me the issue was missing log file mention in the supervisor.conf file
Fix:
touch /var/log/supervisor/supervisord.log Upgrade it to MacOS Sierra 10.12.5.
I faced the same issue and everything was right in the config file as well. Later I figured that I had moved to latest MacOS Sierra 10.12.3 and then it didn't work. It had been working on the older version but not at this specific version of MacOS. Then I upgraded it to MacOS Sierra 10.12.5 and everything seems to be working fine.