- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 monit 管理服务器上的内容。我想做的是在 3 个不同的端口上运行 3 个不同的 gunicorn 服务器。
目前我可以同时运行所有服务器,例如在屏幕上。我可以通过命令启动服务器:
gunicorn -c app1.http_server.config app1.http_server.server:app
gunicorn -c app2.http_server.config app2.http_server.server:app
gunicorn -c app3.http_server.config app3.http_server.server:app
根据我对 monit 工作原理的理解,我应该在 monitrc 文件中指定所有内容,例如:
#set mailserver localhost
#set alert myemail@gmail.com
check process app1 with pidfile /var/run/app1.pid
start program = "gunicorn -c app1.http_server.config app1.http_server.server:app"
stop program = "???"
if failed unixsocket ??? then start
if cpu > 50% for 5 cycles then alert
# TODO app2, app3
check system resources
if loadavg (1min) > 4 then alert
if loadavg (5min) > 2 then alert
if memory usage > 75% then alert
if cpu usage (user) > 70% then alert
if cpu usage (system) > 30% then alert
if cpu usage (wait) > 20% then alert
check filesystem rootfs with path /
if space usage > 80% then alert
我尝试将各种东西放入停止程序字段和启动程序,但 monit 无法启动 gunicorn 服务器。所以我的问题是如何从 monit 运行和停止 gunicorn 服务器?当我启动它时,gunicorn 的 unixsocket 会是什么?谁能提供一些可以帮助我进行设置的示例?
最佳答案
我遇到了同样的问题。 Monit 更喜欢“/virtualenv_path/bin/gunicorn”这样的完整路径。如果您不使用 virtualenv,只需将其删除即可。命令很长,但它是这样工作的:
check process pymonit with pidfile /path/to/pid/gunicorn.pid
start program = "/virtualenv_path/bin/python /virtualenv_path/bin/gunicorn -c /project/path/gunicorn.conf.py /project/path/wsgi:application"
stop program = "/usr/bin/pkill -f '/virtualenv_path/bin/python /virtualenv_path/bin/gunicorn -c /project/path/gunicorn.conf.py /project/path/wsgi:application'"
if failed host 127.0.0.1 port 8011 protocol http then restart
if 5 restarts within 5 cycles then alert
在你的 gunicorn.conf 中,你应该有这样的东西:
bind = '127.0.0.1:8011'
...
pidfile = '/path/to/pid/gunicorn.pid'
在你的 gunicorn.conf 中。
关于python - 使用 monit 运行和停止 gunicorn 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29516920/
我尝试了几乎所有命令来杀死 gunicorn 服务器。但没有任何效果。我怎样才能杀死这些进程并释放 80 端口 12652 ? Ss 0:00 sudo gunicorn -b
我正在使用 Apache Airflow,发现 gunicorn-error.log 的大小在 5 个月内增长了超过 50 GB。大多数日志消息都是 INFO 级别的日志,例如: [2018-05-1
我正在使用 在 Digital Ocean 上运行 django gunicorn 和 nginx . Gunicorn 用于为静态文件提供 django 和 nginx。 通过网站上传文件后,我无法
我正在使用 Django 1.8,我想用 gunicorn 运行我的应用程序。 我可以从命令行绑定(bind)到我的 IP 运行它: gunicorn myapp.wsgi:application -
我们正在使用 https://github.com/tiangolo/uvicorn-gunicorn-fastapi-docker FastAPI 并且能够使用 gunicorn 日志文件自定义我们
我在 docker 上的 centos7 上运行 Airflow 1.8,但我的网络服务器无法访问浏览器。我通过pip2.7安装了airflow。 Flower ui 显示良好,initdb 运行连接
gunicorn.service cannot open WorkingDirectory and the gunicorn executable. I think it's about per
任何想法为什么我的 gunicorn 服务器无法启动? jeffy@originaldjangster:~$ sudo /home/jeffy/django_files/django_test_ven
我已经安装了gunicorn,但是没有找到gunicorn命令: # pip3.4 install gunicorn Requirement already satisfied (use --upgr
我在有监督的ginicorn部署我的django项目。 我在virtualenv中安装了gunicorn,添加到INSTALL_APPS中。 命令./manage.py run_gunicorn -b
我成功安装了gunicorn: remote: -----> Removing .DS_Store files remote: -----> Python app detected remote: -
Systemd 和 Gunicorn 需要某种 wsgi 文件作为 ExecStart 的最后一个参数:http://docs.gunicorn.org/en/latest/deploy.html?h
我正在尝试将基本应用程序部署到 Amazon EC2使用 Django , Gunicorn , 和 Nginx .我有应用 git clone进入我的AWS Ubuntu实例并正在运行 Django
在更新为使用小型模型中的 spacy_en_core_web_lg 后,我的 fastapi 服务器内存不足。 当运行 fastapi 时,会生成 4 个 gunicorn worker,并且根据内存
我有一个基于这个的 ansible 配置虚拟机 https://github.com/jcalazan/ansible-django-stack但出于某种原因,尝试启动 Gunicorn 会出现以下错
我关注 this如何在 Ubuntu 18.04 指南中使用 Postgres、Nginx 和 Gunicorn 设置 Django。 我创建了以下文件 .socket sudo nano /etc/
我正在尝试按照此 [链接][1] 在 Digital Ocean 上部署简单的 Django 应用程序用 gunicorn 实现它的抛出错误 gunicorn.service: Failed with
这里我想问你,用python运行gunicorn uvicorn,和默认从tiangolo有什么区别? 我尝试使用 JMeter 对这些进行压力测试具有线程属性: 从这些,我得到了结果:: 从上面我尝
因此,我有一个简单的 Flask API 应用程序,它运行在运行 tornado worker 的 gunicorn 上。 gunicorn 命令行是: gunicorn -w 64 --backlo
我已经使用 Gunicorn + Nginx + Supervisor 部署了一个 Django 1.6 应用程序。一切正常,但我的 Gunicorn error.log 一直在发送错误。该文件很大,
我是一名优秀的程序员,十分优秀!