像gunicorn 及docker 有着执行时timeout的防止错误发生的机制,
但是要是超过了 timeout的设定,程序就不再运行的情况发生时,该怎麽办呢?
也许可以试一下Supervisor这个套件,官网的文件:
http://supervisord.org/introduction.html
安装:
sudo apt-get install supervisor
再来,可以看一下套件设定档的范例:
echo_supervisord_conf
可以将范例档存於目前的路径:
echo_supervisord_conf > supervisord.conf
未来使用该路径conf来运行:
sudo supervisord --configuration=/current/directory/path/supervisord.conf
如果使用预设在/etc/supervisor/supervisord.conf的档案来运行:
sudo supervisorctl reread
sudo service supervisor restart
那我们可以修改conf来进行设定:
[program:<app名称>]
directory=/home/username/<app名称>
command=gunicorn app:app -b 127.0.0.1:8000 --reload
autostart=true
autorestart=true
stderr_logfile=/var/log/error.log
stdout_logfile=/var/log/output.log
可以参考的conf设定:
[unix_http_server]
file=/tmp/supervisor.sock
[supervisord]
logfile=/tmp/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
pidfile=/tmp/supervisord.pid
nodaemon=false
silent=false
minfds=1024
minprocs=200
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
[program:hello_api]
command=bash -c "source /home/wilson/miniconda3/bin/activate && gunicorn -w 4 main:app -b 0.0.0.0:5000 --reload"
directory=/home/wilson/health/health_factory_api
autostart=true ; start at supervisord start (default: true)
autorestart=true
设定完成,可以重新启动supervisor来监控服务。
藉由supervisorctl来查看是否监控成功:
sudo supervisorctl -c xxx.conf
<<: k8s prometheus 监控多个MySql -盖完後的新增
选择语句 最简单的版本 if 表达式: 接下来需要做的...... 当然,前一章也看过了,也有els...
除了有BETWEEN AND 之外,还有NOT BETWEEN AND (NOT BETWEEN A...
从 Search Console 可以获得的数字中,最重要的几个 KPI 如下: 外部 KPI:流量...
用v-for把阵列转成元素 一开始我们先把items的资料容给见出来 接下来呢我们用v-for=&q...
指令集与执行的程序 看完後上一篇我们知道,指令集代表在 cpu 内预先准备好的动作代号,比如说 代号...