使用自定义配置运行twisted守护程序

时间:2013-10-31 23:26:11

标签: python twisted

当我编写一个将使用twistd守护程序运行的扭曲服务时,我还想让它可配置并运行单独的守护程序,用于相同的服务,具有不同的配置。但是twistd守护进程不接受(至少我看不清楚)命令行中的自定义参数,所以我要做的是在标准输入中传递配置文件:

twisd -y myservice.py < my.cfg

然后在myservice.py我有以下内容:

cfg = parseConfig(sys.stdin.read())
application = Application('myapp')
MyService(a=cfg.a, b=cfg.b).setServiceParent(application)

这对我来说很好,但我想知道是否有正确的方法来做这件事?

2 个答案:

答案 0 :(得分:1)

这看起来好像在这里记录了Twisted方式:

https://twistedmatrix.com/documents/12.0.0/core/howto/tap.html

您编写的插件添加了可以通过CLI使用的“子命令”

答案 1 :(得分:0)

我还想在没有插件机制的情况下添加一个选项,并避免使用stdio - 即通过env变量:

CONFIG my.cfg twisd -y myservice.py

修改后的代码:

cfg = parseConfig(open(os.environ['CONFIG']).read())

(由于我的Linux经验有限,我之前没有想到这一点。)