supervisor插件和工具
项目描述
简介
mr.laforge 是一个为 supervisord 开发的实用工具和插件。
它允许您轻松确保 supervisord 以及它控制的特定进程在shell和Python脚本中运行。
插件部分增加了向进程发送信号的 kill 命令。
使用方法
作为脚本安装
使用它的方法之一是将它作为脚本安装。这也是在shell脚本中使用它的方法。您可以将其作为egg安装,也可以在buildout中安装。
[mr.laforge]
recipe = zc.recipe.egg
eggs = mr.laforge
无论哪种方式,您都会得到 supervisorup、supervisordown 和 waitforports 脚本。
不带参数运行 supervisorup 将检查 supervisord 是否正在运行,如果没有运行,则启动它。您还可以在命令行上提供进程名称,如果它们尚未运行,则将启动它们。
supervisordown 脚本与 supervisorup 做同样的事情,但确保进程已被停止。这对于初始化开发数据库等任务非常有用。
使用 waitforports 您可以检查一个或多个进程是否正在指定的端口上监听。脚本有一些额外的参数,您可以通过 -h 或 --help 列出。
您可以将 supervisor_args 关键字参数设置为设置 supervisorup 脚本的 supervisor 参数,如配置文件位置
[mr.laforge]
recipe = zc.recipe.egg
eggs = mr.laforge
arguments = supervisor_args=['-c', 'etc/my_supervisord.conf']
或者,也可以通过 MR_LAFORGE_SUPERVISOR_ARGS 环境变量设置 supervisor 参数。
从Python脚本中使用
您可以在 mr.laforge 中使用 up 方法,这与 supervisorup 脚本类似,都接受进程名称作为参数。
一个例子是类似这样的 buildout 中的 zc.recipe.testrunner 部分
[test]
recipe = zc.recipe.testrunner
eggs =
...
mr.laforge
initialization =
import mr.laforge
mr.laforge.up('solr-test')
如您所见,您必须添加 egg,这样它就可以被 zc.recipe.testrunner 创建的 test 脚本中的初始化代码导入。 up 调用将 solr-test 作为参数,以确保 solr-test 进程在测试期间正在运行。
另一个例子是 zc.recipe.egg 创建的脚本中的初始化片段
[paster]
recipe = zc.recipe.egg
eggs =
...
mr.laforge
dependent-scripts = true
scripts = paster
initialization =
import mr.laforge
mr.laforge.up('solr')
现在,每次您运行由该脚本创建的 paster 脚本时,都会检查 supervisord 以及它控制的 solr 进程是否正在运行。
可以用来确保进程已停止的 down 方法是 supervisordown 脚本的基础。它的用法与上面的 up 方法类似。
waitforports 脚本的等效方法是 mr.laforge.waitforports。它接受一个端口列表作为参数,这些参数可以是整数或字符串,也可以包含由冒号分隔的主机。您还可以使用 host 关键字参数设置默认主机,以及使用 timeout 关键字参数设置超时值。以下是一个示例
mr.laforge.waitforports(8080, 'db-server.example.com:5432', timeout=10)
还有一个 shutdown 函数,您可以使用它从 Python 代码中关闭 supervisord。
作为插件添加到 supervisord
要使用 mr.laforge 的插件部分,您必须将以下内容添加到您的 supervisord 配置中
[rpcinterface:laforge]
supervisor.rpcinterface_factory = mr.laforge.rpcinterface:make_laforge_rpcinterface
[ctlplugin:laforge]
supervisor.ctl_factory = mr.laforge.controllerplugin:make_laforge_controllerplugin
您必须确保 supervisord 可以导入 mr.laforge。在 buildout 中,您必须像这样将 egg 添加到 supervisor
[supervisor]
recipe = zc.recipe.egg
eggs =
supervisor
mr.laforge
现在,您可以使用 kill 命令了
./bin/supervisorctl kill HUP nginx
变更日志
0.9 - 2019-09-15
修复 Python 3.x 的 controllerplugin 导入。[fschulze]
0.8 - 2018-07-10
修复 Python 3.x 的 do_kill。[fschulze]
0.7 - 2018-07-02
添加 Python 3.x 支持。[fschulze]
添加 socket 的超时,这样我们就不会在不可用的主机上挂起。[fschulze]
0.6 - 2012-10-06
添加 supervisordown 脚本和相应的 down 方法,以确保进程已停止。[fschulze]
0.5 - 2012-05-23
允许通过 MR_LAFORGE_SUPERVISOR_ARGS 环境变量设置 supervisor 参数。[witsch]
添加 shutdown 函数,可以从 Python 代码中关闭 supervisord。[fschulze]
0.4 - 2012-05-09
添加 waitforports 脚本和函数,等待进程在指定的端口上监听。[fschulze, witsch]
0.3 - 2012-04-03
不要将命令行选项传递给 supervisor 代码。[fschulze]
向 up 函数添加 supervisor_args 关键字参数。[fschulze, witsch (Andreas Zeidler)]
0.2 - 2011-04-20
添加带有 kill 命令的 supervisord 插件,以向进程发送信号。[fschulze]
0.1 - 2011-04-20
初始版本
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建发行版
mr.laforge-0.9.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7d87848016854522f0eaedde71bfd2ce362f7e29ddb24aec0b1205cf9b431d61 |
|
MD5 | 05a2665f726ab0cd5a08c034a06c52a1 |
|
BLAKE2b-256 | 13d7627b2f1f0e41d40b17947a5f33913c7e9628ed091711aff4a6ff5f1d9b26 |
mr.laforge-0.9-py2-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5fd32f87fb5c02ea558810269b6ccb6fae545013dfa16bab6d22d890cc094219 |
|
MD5 | de728d2b2c947501c895ca8e0e99d97c |
|
BLAKE2b-256 | 85a209f5d8106344d3902a1722fdb6233a5526c2513ba8fe8f66f5051c7a7dae |