Running a supervisord daemon as non-root

There are often cases where we cannot setup a service as the root user. In those cases, it can be handy to set up supervisord for your user.The first thing we’ll need is a supervisord.conf file. I found the following setup to work well for me:



supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

serverurl = unix://%(here)s/supervisor.sock


Have a look at the docs for everything that’s available.

I recommend creating the following directories to store everything supervisord related:

mkdir -p ${HOME}/supervisord/logs

Put the supervisord.conf file in the directory created, i.e, ${HOME}/supervisord/supervisord.conf.

You’re now ready to start the daemon with

/usr/bin/supervisord -c ${HOME}/supervisord/supervisord.conf

You can then view logs at ${HOME}/supervisord/logs/supervisord.log and view status of programs with supervisorctl:

/usr/bin/supervisorctl -c ${HOME}/supervisord/supervisord.conf

After adding a program in one of the sub-directories in applications, run the following to make supervisord see the changes:

/usr/bin/supervisorctl -c ${HOME}/supervisord/supervisord.conf update

To stop the daemon, use the following:

kill $(supervisorctl -c ${HOME}/supervisord/supervisord.conf pid)