我添加了一个使用python的cassandra库的bottle服务器,但它退出时出现以下错误:
Bottle FATAL Exited too quickly (process log may have details)
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)
这就是我用的:
[program:uwsgi]
command=bash -c 'sleep 5 && uwsgi /etc/uwsgi.ini'
对
sleep
命令破解不够满意,我创建了一个启动脚本并从那里启动了 supervisorctl start processname
。
[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
启动.sh
#!/bin/bash
sleep 5
supervisorctl start myapp
这样,主管将触发启动脚本一次,这将在 5 秒后启动我的应用程序,请注意
autostart=false
上的 autorestart=true
和 myapp
。
我遇到了类似的问题,使用supervisorctl启动64个python rq-worker进程在每次重新启动时都会引发CPU和RAM警报。我所做的如下:
command=/bin/bash -c "sleep %(process_num)02d && virtualenv/bin/python3 manage.py rqworker --name %(program_name)s_my-rq-worker_%(process_num)02d default low"
基本上,在运行 python 命令之前,我会睡眠 N 秒,其中 N 是进程号,这基本上意味着我的主管将每秒启动一个 rq-worker 进程。