跳转到主要内容

用于安装supervisor的buildout食谱

项目描述

buildstatus

详细文档

当使用此配方时,将执行以下操作

  • 安装 supervisor 及其所有依赖项。

  • bin 目录中生成 supervisordsupervisorctlmemmon 脚本

  • 生成一个配置文件,该文件将由 supervisordsupervisorctl 脚本使用

支持选项

该配方支持以下选项

部分

启用的 supervisor 部分列表。默认启用所有:全局 http ctl rpc 服务

插件

您希望配方安装的额外 eggs,例如 superlance

http-socket

用于 HTTP 管理的 inetunix 套接字。默认为 inet

文件

UNIX 域套接字(例如 /tmp/supervisord.sock)的路径,supervisor 将在此套接字上监听 HTTP/XML-RPC 请求。

chmod

在启动时将 UNIX 权限模式位更改为此值。

chown

在启动时将 UNIX 域套接字的拥有者更改为此值。可以是 useruser:group

端口

supervisord 监听的端口号,例如 9001。可以是 host:port 的形式,例如 127.0.0.1:9001。默认为 127.0.0.1:9001

用户

用于身份验证到 supervisord 所需的用户名

密码

用于身份验证到 supervisord 所需的密码

supervisord-conf

配方放置 supervisord 配置文件的完整路径。默认为 ${buildout:directory}/parts/${name}/supervisord.conf

supervisord-user

如果 supervisord 以 root 用户运行,则在执行任何有意义处理之前切换到此 UNIX 用户帐户。如果 supervisord 不是以 root 运行,则此值没有效果。

supervisord-directory

当 supervisord 以守护进程模式运行时,切换到此目录。此选项可以包括 %(here)s 的值,该值展开为包含 supervisord 配置文件的目录。

supervisord-environment

KEY=val,KEY2=val2 的形式放置在 supervisord 进程的环境中的键/值对列表。此选项可以包括 %(here)s 的值,该值展开为包含 supervisord 配置文件的目录。注意,子进程将继承启动 supervisord 所使用的 shell 的环境变量,但这里和程序的环境配置段中覆盖的变量除外。

childlogdir

存储 Supervisor 管理的进程日志文件的目录的完整路径。默认为 ${buildout:directory}/var/log

logfile

supervisord 日志文件的完整路径。默认为 ${buildout:directory}/var/log/supervisord.log

pidfile

supervisord 的 pid 文件。默认为 ${buildout:directory}/var/supervisord.pid

logfile-maxbytes

活动日志文件在轮换之前可能消耗的最大字节数。默认为 50MB。

logfile-backups

保留活动日志文件轮换结果的备份数量。默认为 10。

loglevel

日志级别。可以是以下之一:criticalerrorwarninfodebugtraceblather。默认为info

umask

supervisord进程的umask。默认为022

nodaemon

如果为true,supervisord将在前台启动而不是作为守护进程。默认为false。

nocleanup

防止supervisord在启动时清除任何现有的AUTO子日志文件。对于调试很有用。默认为false。

serverurl

访问supervisord服务器的URL。默认为http://127.0.0.1:9001

programs

您希望supervisord控制的程序列表。每行一个。每行的格式如下

priority process_name [(process_opts)] command [[args] [directory] [[redirect_stderr]] [user]]

[args]是要传递给command的任意数量的参数。它必须放在[](例如:[-v fg])。下面有示例。如果没有提供,redirect_stderr默认为false。如果没有提供,directory选项默认为包含命令的目录。可选的process_opts参数在supervisord配置中设置了额外的选项。它必须放在()内,并且必须包含以空格分隔的key=value格式的选项 - 例如:(autostart=false startsecs=10)。可选的user参数指定进程应该运行的用户ID(如果supervisord以root身份运行)。

在大多数情况下,您只需要提供前四个部分

priority process_name command [[args]]
eventlisteners

您希望supervisord作为子进程运行以订阅事件通知的事件监听器列表。每行一个。有关事件的supervisor文档,请参阅http://supervisord.org/events.html

processname [(process_opts)] events command [[args]]

events是逗号分隔的事件类型名称列表(不带空格),监听器对此感兴趣并希望接收通知。

Supervisor提供了一个名为memmon的事件监听器,可以用来在子进程达到一定的内存限制时重启supervisord。请注意,您需要定义变量userpasswordserverurl(在上述支持的选项中描述),才能使用memmon监听器。定义一个memmon事件监听器的示例,该监听器每60秒分析一次内存使用情况,并在需要时重启,可能如下所示

MemoryMonitor TICK_60 ${buildout:bin-directory}/memmon [-p process_name=200MB]

由于事件监听器是进程的特殊情况,它们也接受进程选项。一个有用的选项是在您的web服务器启动并加载一段时间后(例如20秒后)才启动像HttpOk检查器这样的事件监听器

HttpOk (startsecs=20) TICK_60 ${buildout:bin-directory}/httpok [-p web -t 20 https://#:8080/]

groups

成为组一部分的程序列表。每行一个。每行的格式如下

priority group_name program_names

programs_name是程序名称的逗号分隔列表。

env-path

环境变量PATH,例如:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin

示例

[buildout]
parts = supervisor

# ...configure zope/zeo here...

[supervisor]
recipe = collective.recipe.supervisor

port = 9001
user = johndoe
password = secret
serverurl = http://supervisor.johndoe.com

plugins =
      superlance

programs =
      10 zeo ${zeo:location}/bin/runzeo ${zeo:location}
      20 instance1 ${instance1:location}/bin/runzope ${instance1:location} true
      30 instance2 (autostart=false) ${instance2:location}/bin/runzope true
      40 maildrophost ${buildout:bin-directory}/maildropctl true
      50 other ${buildout:bin-directory}/other [-n 100] /tmp
      60 other2 ${buildout:bin-directory}/other2 [-n 100] true
      70 other3 (startsecs=10) ${buildout:bin-directory}/other3 [-n -h -v --no-detach] /tmp3 true www-data

eventlisteners =
      Memmon TICK_60 ${buildout:bin-directory}/memmon [-p instance1=200MB]
      HttpOk (startsecs=20) TICK_60 ${buildout:bin-directory}/httpok [-p instance1 -t 20 https://#:8080/]

groups =
      10 services zeo,instance1
      20 others other,other2,other3

升级

如果从v0.19升级到0.20,则sections参数有两个新部分:globalservices。如果旧buildout配置中设置了sections参数:为了获得与之前相同的行为,请将两个新部分名称追加到sections的值中。

源代码

源代码存储在 Git 分布式版本控制系统(DVCS)中,主分支位于 github collective

我们很高兴看到许多贡献,使其变得更好。

变更历史

1.0.0 (2019-04-15)

  • 改进代码质量,修复了 flake8 警告‘W605 无效转义序列’的正则表达式。[maurits]

  • unix_http_server 部分支持 chown 选项。[guewen]

  • 在 Python 2.7、3.6、3.7 上进行了测试。[davidweterings, maurits]

0.20 (2015-10-06)

  • 修复测试以使其可运行。修复了 https://github.com/collective/collective.recipe.supervisor/issues/10 [gforcada]

  • 修复:由于拼写错误,memscript 安装脚本未获取配置文件。[moriyoshi]

  • 特性:排除全局配置,以便生成的文件可以由系统范围内的 supervisord 包含。[jensens]

  • 对代码库进行清理/重整/PEP8,包括包含测试运行器的自包含 buildout。[jensens]

0.19 (2013-01-09)

  • 修复 buildout 首次运行后从 picked eggs 中消失的依赖项。[afrepues]

  • 修复项目历史文件中的电子邮件地址,不知何故它错了。[afrepues]

0.18 (2012-11-16)

  • 添加 travis-ci 支持 [fredvd]

  • 将进程选项添加到事件监听器中,例如可以延迟它们。[fredvd]

  • 修复 doctests,在 doctests 中固定 supervisor 和 superlance。[fredvd]

  • 添加设置 supervisord 用户、目录和环境的选项的支持 [anthonygerrard]

0.17 (2011-07-28)

  • 添加对进程组的支持 [nueces]

0.16 (2011-03-07)

  • 修复 supervisorctl 以使用 unix_http_server,如果已使用 [Domen Kožar, NiteoWeb. 由 Hexagon IT 赞助的工作]

0.15 (2011-03-05)

  • 除了 inet_http_server 之外,还添加了对 unix_http_server 的支持 [Domen Kožar, NiteoWeb. 由 Hexagon IT 赞助的工作]

0.14 (2010-12-10)

  • 添加了对 supervisord umask 选项的支持 [afrepues@mcmaster.ca]

  • 将用于与 supervisord 进程进行身份验证的凭据从 supervisorctl 脚本移动到配置文件。由于 zc.buildout 的错误 180705,脚本被设置为全球可读。 [afrepues@mcmaster.ca]

0.13 (2010-12-07)

  • Supervisor 的“nocleanup”选项现在可以从 Buildout 补丁中配置 [Damien Letournel]

0.12 (2010-08-04)

  • 为事件监听器引用在 supervisor 配置文件中写入的环境变量,否则 supervisor 不会正确地将它们传递给例如 memmon [Fred van Dijk]

0.11 (2010-08-02)

0.10.1 (2010-07-27)

  • 更新有关如何使用 memmon 事件监听器的文档 [lucielejard]

0.10 (2010-06-03)

  • 添加了环境变量 PATH 的选项 [lucielejard]

  • 添加了对禁用 supervisor 部分(如 http、rpc 和 ctl)的支持 [Domen Kozar]

0.9 (2009-11-04)

  • 应用 Jonathan Ballet 的补丁:生成的控制脚本在运行在自定义端口时不自动连接到创建的 supervisord。[nkryptic]

0.8 (2009-04-27)

  • 使能够在控制脚本中为每个进程设置额外的选项。[nkryptic]

0.7 (2009-01-27)

  • 添加了“plugins”选项,因此我们可以安装额外的 eggs(supervisor 插件)[mustapha]

  • 对事件监听器部分进行了一些修复 [mustapha]

  • 更新了测试

0.6 (2008-11-10)

  • 现在可以指定将用作程序运行的帐户的用户帐户。[amos]

0.5 (2008-08-23)

  • 添加事件监听器选项,用作事件通知框架。针对与 supervisor 的 memmon 事件监听器的使用 [aburkhalter]

0.4 (2008-06-12)

  • 使用动态脚本名称以允许多个集群 [gawel]

  • 确保在使用 zope 的 recipes 无时创建日志目录 [gawel]

0.3 (2008-06-01)

  • 更新文档和测试 [mustapha]

  • PEP8 美容 [mustapha]

  • 使能够向控制脚本传递参数。[hannosch]

  • 将所有指定的选项(如服务器 URL 和用户名)放入生成的控制脚本中。这允许直接运行它。[hannosch]

0.2 (2008-04-23)

  • 使命令能够传递参数,以便可以使用ctl脚本与supervisor一起使用,例如用于zope实例的参数“fg”,或者用于其他程序的–no-detach等类似参数[必须法]

  • 更新了测试[必须法]

0.1 (2008-04-21)

  • 使用ZopeSkel创建了配方[Mustapha Benali]。

贡献者

  • Mustapha Benali,作者

  • Hanno Schlichting,贡献者

  • gawel,贡献者

  • aburkhalter,贡献者

  • Amos Latteier,贡献者

  • Jacob Radford,贡献者

  • Jonathan Ballet,贡献者

  • Domen Kozar,贡献者

  • Lucie Lejard,贡献者

  • Servilio Afre Puentes,贡献者

  • Juan A. Diaz (nueces),贡献者

  • Fred van Dijk (fredvd),贡献者

  • Jens W. Klein (jensens),贡献者

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

collective.recipe.supervisor-1.0.0.tar.gz (13.9 kB 查看哈希值)

上传时间

构建分发

collective.recipe.supervisor-1.0.0-py2.py3-none-any.whl (12.5 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面