Supervisor not loading new configuration files
I have a problem deploying Django app using Gunicorn and Supervisor. While I can make Gunicorn serving my app (by setting proper PYTHONPATH and running apropriate command, the one from supervisord config) I can't make supervisor to run it. It just won't see my app. I don't know how to make sure if the config file is ok.
Here's what supervisorctl says:
# supervisorctl start myapp_live
myapp_live: ERROR (no such process)
I'm running it on Ubuntu 10.04 with following config:
File /home/myapp/live/deploy/supervisord_live.ini:
[program:myapp_live]
command=/usr/local/bin/gunicorn_django --log-file /home/myapp/logs/gunicorn_live.log --log-level info --workers 2 -t 120 -b 127.0.0.1:10000 -p deploy/gunicorn_live.pid webapp/settings_live.py
directory=/home/myapp/live
environment=PYTHONPATH='/home/myapp/live/eco/lib'
user=myapp
autostart=true
autorestart=true
In /etc/supervisor/supervisord.conf, at the end of the file, there is:
[include]
files = /etc/supervisor/conf.d/*.conf
and here's a symlink to my config file:
# ls -la /etc/supervisor/conf.d
lrwxrwxrwx 1 root root 48 Dec 4 18:02 myapp-live.conf -> /home/myapp/live/deploy/supervisord_live.ini
everything looks fine for me but supervisorctl just keep saying myapp_live: ERROR (no such process)
. Any solution for this?
I had the same issue, a
sudo service supervisord reload
did the trick, though I don't know if that is the answer to your question.
The correct answer is that supervisor requires you to re-read and update when you place a new configuration file. Restarting is not the answer, as that will affect other services. Try:
supervisorctl reread
supervisorctl update
Make sure your supervisor conf files end in .conf
Took me a while to figure that one out. Hopefully it helps the next person.
Reloading the master supervisor process may work, but it will have unintended side effects if you have more than one process being monitored by supervisor.
The correct way to do it is to issue supervisorctl reread
which causes it to scan configuration files for any changes:
root@debian:~# supervisorctl reread
gunicorn: changed
Then, simply reload that app:
root@debian:~# supervisorctl restart gunicorn
gunicorn: stopped
gunicorn: started
I had a similar problem ( myapp_live: ERROR (no such process)
) and it was because my process definition was
[program: myapp_live]
when it should have been
[program:myapp_live]
While this doesn't address the question that was asked, I was lead here by the Search that Be looking for a solution to my problem, so hopefully other people find it here, too.