0

当我编写一个将与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)

这对我来说效果很好,但我想知道是否有正确的方法来做到这一点?

4

2 回答 2

1

看起来好像在此处记录了 Twisted 的执行方式:

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

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

于 2013-11-01T06:49:40.137 回答
0

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

CONFIG my.cfg twisd -y myservice.py

使用修改后的代码:

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

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

于 2013-11-11T17:22:47.683 回答