问题标签 [supervisord]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1896 浏览

python - 您将哪个版本的 Python(2.4、2.5、2.6、3.0)标准化用于生产开发工作(以及为什么)?

在我们的团队中,我们主要从事搜索引擎架构和内容集成工作,并且大部分代码库都使用 Python。我们所有的构建工具和 Python 模块依赖项都在源代码控制中,因此可以检查它们并加载环境以供使用,而不管操作系统/平台如何,有点类似于virtualenv使用的方法。

多年来,我们一直在维护与 Python 2.3 兼容的代码库,因为我们使用的商业产品之一依赖于 Python 2.3。多年来,这导致了越来越多的问题,因为自 2004 年 2.3 版以来,更新的工具和库需要更新版本的 Python。

我们最近将我们的构建环境与商业产品环境的依赖解耦,并且可以使用我们想要的任何版本的 Python(或 Java)。自从我们将 Python 2.6 标准化为与以前版本向后兼容的最新版本 Python 以来,已经过去了大约一个月左右的时间。

Python 3.0 不是一个选项(目前),因为我们必须迁移过多的代码库才能使我们的构建和集成工具再次正常工作。

我们喜欢 Python 2.6 的许多新特性,尤其是改进的模块和类装饰器之类的东西,但是我们依赖的许多模块会导致 Python 2.6 解释器发出各种贬值警告。另一个我们感兴趣的用于管理 EC2 云集群节点的工具,Supervisor甚至无法在 Python 2.6 中正常工作。

现在我想知道我们现在是否应该在 Python 2.5 上标准化,而不是在生产环境工具的开发中使用 Python 2.6。我们想要/需要的大多数工具似乎都可以在 Python 2.5 中正常工作。在对 Python 2.6 功能或模块有很多依赖之前,我们正在尝试解决这个问题。

非常感谢!

-迈克尔

0 投票
1 回答
1556 浏览

python - Supervisord RPC - 任何请求的 UNKNOWN_METHOD

我已经配置了(几乎是默认的)supervisord.conf 并启动了 supervisord。已启动的任务和 xmlrpc 接口已启动,但 xmlrpclib.Fault: <Fault 1: 'UNKNOWN_METHOD'>即使在启动 supervisorctl 本身时也会发出每个 xmlrpc 请求。

日志中有相同的消息:

0 投票
1 回答
769 浏览

python - 为什么要在 buildout 中构建 supervisord?

我已经看到将主管构建到构建中的构建配方,我想控制里面的守护进程。但是,在我看来,仍然需要 /etc/init.d 中的某些内容(例如)在启动时运行所述主管实例。

那么,为什么要在 buildout 中构建 supervisor?为什么不在系统范围内安装它,只为里面涉及的守护进程创建一个配置文件?

0 投票
3 回答
3758 浏览

signals - 使用 supervisord 将信号传递给托管进程

我正在使用 supervisord 来生成和管理我用 C 语言为 linux 目标编写的 FastCGI 应用程序。我有一个信号处理程序,可以在收到 SIGINT 时优雅地退出我的应用程序。我已经通过在终端窗口中运行应用程序并发出 Ctrl-C 退出来验证信号处理程序是否按预期工作。

当向 supervisord(通过 supervisorctl)发出“关闭”命令时,supervisord 似乎无法在不调用 SIGKILL 的情况下强制应用退出:

我的 supervisord.conf 文件中有以下内容

我假设 supervisord 在调用 shutdown 命令时发出“停止信号”,所以我将 INFO 语句作为我的应用程序没有响应 supervisord 发出的 SIGINT 的指示。

如何调试 supervisord 和我的应用程序之间传递的信号?

0 投票
1 回答
15942 浏览

python - 重新加载 supervisord 会导致其下的进程停止吗?

我试图弄清楚我何时使用 reload 命令来管理supervisord。它会停止当前在其下执行的处理吗?我使用了以下步骤:

我发现进程id没有改变。那么它是否证明重新加载不会停止主管控制下的处理?

0 投票
1 回答
5122 浏览

c - supervisord 可以用于程序的内存和 CPU 使用情况分析

我必须找出是否在一段时间内重复运行特定的 api 会导致内存泄漏。

我有一个简单的 C 程序,用于测试 API 一次。我打算编译它并重复使用supervisord运行exe。

supervisord 还可以分析程序的 CPU 和内存使用情况吗?
我在几个博客中进行了广泛搜索,但没有找到太多关于 supervisord 分析能力的信息。

有关主管的更多信息,请访问http://supervisord.org

0 投票
1 回答
5711 浏览

python - Supervisor 中的多个命令 - Python/Linux

我正在使用惊人的实用程序supervisord


我很高兴运行一些编辑配置文件的应用程序,如下所示:


现在的问题是某些应用程序在启动之前需要一些命令才能为启动做好准备。

例如验证条件、清理文件夹等...


有任何想法吗?

0 投票
2 回答
2208 浏览

configuration - supervisord:动态生成配置?

是否可以动态生成supervisord使用的配置?

我正在做一个项目,无论如何都需要在一个中心位置定义所有服务,所以如果我也能以某种方式欺骗supervisord使用该配置数据,那将非常方便。

0 投票
2 回答
4368 浏览

django - Django、uWSGI 和 nginx:进程“无缘无故”死亡

我正在使用 uWSGI 和 nginx 来运行两个并行的 Django 应用程序。其中一个,负载稍多的一个(两者都非常小)每 24 小时大约每 24 小时死亡一次,并显示以下消息:

[pid: 16358|app: 0|req: 1000/1000] 127.0.0.1 () {46 vars in 847 bytes} [Thu Mar 24 16:38:31 2011] GET /aktivitet/409/picknick/ => generated 18404 bytes in 117 msecs (HTTP/1.0 200) 3 headers in 156 bytes (1 switches on core 0) ...The work of process 16358 is done. Seeya!

我正在使用具有以下配置的 Supervisor 启动进程:

[program:uttrakad] command=/home/myuser/webapps/uwsgi_test/bin/uwsgi -s /home/myuser/webapps/uwsgi_test/app1.sock -C /home/myuser/webapps/django/app1.wsgi --processes 1 --harakiri 120 --max-requests 1000 autostart=true autorestart=true stdout_logfile=/home/myuser/logs/user/uwsgi_app1.log redirect_stderr=true stopsignal=QUIT

.wsgi 文件很简单:

import os import sys sys.path =['/home/openworks/webapps/django/lib/python2.6/','/home/openworks/webapps/django/','/home/openworks/webapps/django/app1/'] + sys.path from django.core.handlers.wsgi import WSGIHandler os.environ['DJANGO_SETTINGS_MODULE'] = 'app1.prod_settings' application = WSGIHandler()

nginx 设置了 2 个工作进程,2048 个 worker_connections,如下所示: location / { uwsgi_pass unix:///home/openworks/webapps/uwsgi_test/app1.sock; include uwsgi_params; }

正如我所说,还有一个应用程序配置了完全相同的方式,它一直在无中断地运行,但几乎没有流量。

有什么线索吗?为什么我会收到“ ...进程 16358 的工作已完成。Seeya ”消息?

谢谢

0 投票
2 回答
2625 浏览

django - Django + nginx + gunicorn 给出 502 错误。日志信息很少

我的服务器配置是这样的(这是全新安装的 ubuntu 10.10)

nginx + gunicorn + django + supervisord 运行它

当我尝试访问我的网站时,出现 502 错误。这将显示在错误日志中:

这是我的 nginx.conf http://pastebin.com/t0V2yFxr

这是我的 supervisord.conf http://pastebin.com/pqVqRLSk

和我的 gunicorn.conf

当我运行 sudo supervisordctl status

它什么也不返回。所以这让我怀疑它没有正常运行。但是,没有 supervisord.log 文件(在 /var/log/ 或 /code/[]/logs/ 中)或 gunicorn.log 显示错误。

所以我根本无法调试这个。关于如何照顾这种羚牛的任何建议?