2013-10-31 72 views
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) 

這工作得很好,我,但我不知道是否有正確的方式做這個?

+1

從標準輸入讀取的TAC文件是不尋常的,並沒有特別的支持。它偶然工作。我認爲你將難以說服足夠多的人,這是一個足夠好的接口來無限期地支持 - 所以你可能會發現Twisted的未來版本(意外)會打破它。 –

回答

0

我也想插件增加一個選項,而不包括插件機制,並避免stdio - 即通過ENV變量:

CONFIG my.cfg twisd -y myservice.py 

與修改後的代碼:

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

(我沒有想到的,因爲我有限的Linux體驗這更早)