用于安装supervisor的buildout食谱
项目描述
详细文档
当使用此配方时,将执行以下操作
安装 supervisor 及其所有依赖项。
在 bin 目录中生成 supervisord、supervisorctl 和 memmon 脚本
生成一个配置文件,该文件将由 supervisord 和 supervisorctl 脚本使用
支持选项
该配方支持以下选项
- 部分
启用的 supervisor 部分列表。默认启用所有:全局 http ctl rpc 服务。
- 插件
您希望配方安装的额外 eggs,例如 superlance
- http-socket
用于 HTTP 管理的 inet 或 unix 套接字。默认为 inet。
- 文件
UNIX 域套接字(例如 /tmp/supervisord.sock)的路径,supervisor 将在此套接字上监听 HTTP/XML-RPC 请求。
- chmod
在启动时将 UNIX 权限模式位更改为此值。
- chown
在启动时将 UNIX 域套接字的拥有者更改为此值。可以是 user 或 user: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
日志级别。可以是以下之一:critical、error、warn、info、debug、trace或blather。默认为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。请注意,您需要定义变量user、password和serverurl(在上述支持的选项中描述),才能使用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参数有两个新部分:global和services。如果旧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)
Supervisor 的“childlogdir”选项现在可以从 Buildout 中配置 [Jonathan Ballet]
在 supervisor 配置文件中实现 [include] 功能。请参阅 http://supervisord.org/configuration.html#include [ycadour]
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 970b5e9ee8b123a0d2234aa4ad51e76fce948238484267c304269e704302b8c2 |
|
MD5 | ed66fded2d7d71487a133505c2d8b94e |
|
BLAKE2b-256 | 51cd103ed13b216179efcebf7d70390b2460fd73b4f82ed597acdce79ce6bdab |
collective.recipe.supervisor-1.0.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 33e4df6608cf34a09e563bb34d38f55f92c6c80f480090b4fbf4a912a32c56f4 |
|
MD5 | a7c368677f282f71e172a1e41c9ce4ad |
|
BLAKE2b-256 | 6ab6a236d773e333bc550540f8d97f30a84a6397addf020a98b0288ecd4409d1 |