I'd like to use supervisord to run some commands for my Django project but I keep getting the following error:


2012-05-18 17:52:15,784 INFO spawnerr: can't find command 'source'

If I remove the "source" command, the log shows the same error: can't find command 'python'.

supervisord.conf excerpt:

command=beanstalkd -l -p 11300
command=source /home/mf/virtualenvs/env/bin/activate
command=python manage.py command1
command=python manage.py command2

I tried removing the directory and adding the absolute path to the commands but I kept getting the same error.

I run supervisord with the following command:

supervisord -c supervisord.conf -l supervisor.log

The source command is only available in bash, and the supervisor command is run by sh. I would recommend using a script to perform your commands:


command = bash /path/to/app/init.sh
directory = /path/to/app/
user = ubuntu



beanstalkd -l -p 11300
source /home/mf/virtualenvs/env/bin/activate    
python manage.py command1
python manage.py command2

The only problem is that supervisor will only have control of the script, not the command(s). If you have a situation where you want supervisor to manage and keep alive a specific process, I would recommend using exec in your bash init file, that way supervisor will have control of your process. E.g.



exec beanstalkd -l -p 11300

You may find this useful: http://sjsnyder.com/managing-virtualenv-apps-with-supervisor


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.