I added a bottle server that uses python's cassandra library, but it exits with this error:
Bottle FATAL Exited too quickly (process log may have details)
log shows this:
File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1765, in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers", errors)
So I tried to run it manually using supervisorctl start Bottle ,and then it started with no issue. The conclusion= Bottle service starts too fast (before the needed cassandra supervised service does): a delay is needed!
Asked
Active
Viewed 2.0k times
14
Martijn Pieters
- 889,049
- 245
- 3,507
- 2,997
Zack S
- 1,192
- 1
- 20
- 37
2 Answers
25
This is what I use:
[program:uwsgi]
command=bash -c 'sleep 5 && uwsgi /etc/uwsgi.ini'
DeeY
- 816
- 8
- 14
-
19`command=bash -c "sleep 5 && exec uwsgi /etc/uwsgi.ini"`: exec will replace bash with uwsgi, double quotes will ensure that enclosed string will be sent to bash as a single argument. – Slotos Jul 03 '15 at 18:20
-
3When I do this, the process keeps running in the background after i do "supervisorctl stop" – kgreenek Nov 30 '17 at 01:39
-
1@kgreenek Yes, and the previous comment will fix that. Unless your actual program is broken. – Torsten Bronger Nov 23 '19 at 18:36
6
Not happy enough with the sleep
hack I created a startup script and launched supervisorctl start processname
from there.
[program:startup]
command=/startup.sh
startsecs = 0
autostart = true
autorestart = false
startretries = 1
priority=1
[program:myapp]
command=/home/website/venv/bin/gunicorn /home/website/myapp/app.py
autostart=false
autorestart=true
process_name=myapp
startup.sh
#!/bin/bash
sleep 5
supervisorctrl start myapp
This way supervisor will fire the startup script once and this will start myapp after 5 seconds, mind the autostart=false
and autorestart=true
on myapp
.
MGP
- 2,476
- 32
- 31