supervisor.conf default location
Solution 1
Normally the default file is indeed /etc/supervisor.conf
, but the Debian distribution patches this (link to the gzipped patch as provided by Debian) to look for /etc/supervisor/supervisor.conf
first:
--- supervisor-3.0a8.orig/src/supervisor/options.py
+++ supervisor-3.0a8/src/supervisor/options.py
@@ -105,7 +105,7 @@
def default_configfile(self):
"""Return the name of the found config file or raise. """
paths = ['supervisord.conf', 'etc/supervisord.conf',
- '/etc/supervisord.conf']
+ '/etc/supervisor/supervisord.conf', '/etc/supervisord.conf']
config = None
for path in paths:
if os.path.exists(path):
So with that patch, supervisor looks for supervisord.conf
in the local directory, in the etc/
subdirectory, then in the global /etc/supervisor/
and /etc/
directories.
The default supervisord.conf
file installed by Debian has this at the end:
[include]
files = /etc/supervisor/conf.d/*.conf
causing supervisord to load any extra files put in the conf.d
directory.
Solution 2
You may have installed supervisor via pip and therefore have the unpatched version in
/usr/local/lib/python2.7/dist-packages/supervisor/
taking precedance over the patched version in
/usr/lib/pymodules/python2.7/supervisor
See Martjin's answer for details on the patch. The simple solution is to:
pip uninstall supervisor
Then rerun the package install in case it was only partially installed:
apt-get install supervisor
Also make sure your /etc/supervisor/supervisord.conf
is present. If not, you may need to manually recreate it, mine looks like this:
; supervisor config file
[unix_http_server]
file=/var/run//supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run//supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
Comments
-
mrjj almost 2 years
Im trying to make automatic deployment including supervisord and confused by default settings path.
Every deployment scheme I found use
/etc/supervisor/supervisor.conf
and/etc/supervisor/conf.d/
without any presettings and links, also, after installing supervisor package via apt-get this path is really filled by example configuration.In this example flow looks like this without any links and creation anything like
/etc/supervisor.conf
:sudo('apt-get -y install supervisor') put('config/supervisor_gunicorn.conf', '/etc/supervisor/conf.d/gunicorn.conf', use_sudo=True) sudo('supervisorctl reload')
But in
supervisorctl
this path is not specified as default and it's assumed that default location somewhere aroud/etc/supervisor.conf
so as specified in manualI've try to install supervisor all possible ways but I can't get result.
I know that this is just small stupid detail, but I will be very grateful for your assistance in keeping my deployment scheme good.
-
mrjj over 11 yearsThank you a lot! I revised what the package installation changing on my server, so reason was that it is installing partially (maybe pythonbrew is the reason maybe something else) and the patch is not applying.
-
fthinker over 10 yearsNice find. I was wondering how the ubuntu version was looking for /etc/supervisor/supervisor.conf.
-
Nate Symer almost 6 yearsThis was so useful for me when rewriting a Dockerfile to use Alpine instead of Debian Jessie. All I did was add
RUN printf "\n[include]\nfiles = /etc/supervisor/conf.d/*.conf\n" >> /etc/supervisord.conf
to my Dockerfile. -
Optimus Prime over 5 yearsdoesn't seem to work on centos. Do I need to change supervisorctl config?