两个不同项目的多个 supervisor.conf

Posted

技术标签:

【中文标题】两个不同项目的多个 supervisor.conf【英文标题】:multiple supervisor.conf for two different projects 【发布时间】:2015-05-19 19:03:03 【问题描述】:

我可以为不同的 django-celery 项目使用不同的 supervisor.conf 文件吗?

我在项目本身中为他们两个创建了单独的主管,但主管只与一个一起工作。有什么方法可以分别为它们保留配置文件,并且仍然可以为它们使用主管恶魔。

注意:我没有在 /etc/supervisor/conf.d 目录下创建 supervisor.conf 文件。

【问题讨论】:

为什么要两个主管守护进程?您可以在 conf 中定义两个 celery 服务,例如: [program:celery1]... [program:celery2]... 我已经为每个主管设置了多个程序/队列。问题是我只是想单独保存它以保持简单 如果有帮助,您可以将其拆分为单独的文件,就像这样(在 ] 之后有一个换行符): [include] files = /etc/supervisor/conf.d/*.conf跨度> 是的...但是如何同时运行这两个配置文件,因为我需要同时为这两个文件启动大部分程序。如果我运行一个配置文件,我将无法启动其他配置文件,因为我收到错误“另一个程序已经在监听配置的端口”。所以只是想知道有没有什么方法可以改变端口或让它们都工作的东西。 当主管服务启动时,该文件夹中的任何 conf 文件都会自动包含在内。当您执行“supervisorctl status”时,您应该会看到列出的所有 conf 文件的所有程序。如果您的配置文件没有问题,或者尝试“service supervisord restart”。 【参考方案1】:

我们遇到了同样的问题,只是为两个不同的 docker 服务运行同一个项目 - 一个用于 API(flask),第二个用于离线处理(celery)

这是我们 docker-compose 的命令部分

command: bash -c "echo -e \"[include]\nfiles = /svc/etc/supervisord/*\" > unified.conf
                  && supervisord -c unified.conf"

首先我们创建文件,然后运行 ​​supervisord 命令

【讨论】:

以上是关于两个不同项目的多个 supervisor.conf的主要内容,如果未能解决你的问题,请参考以下文章

supervisor.conf 默认位置

ini 修改过的新应用程序:supervisor /etc/supervisor/conf.d/my_app.conf

ini supervisor.conf

supervisor进程管理工具

使用Supervisor来管理你的Laravel队列

supervisor进程管理