扭曲的应用没有扭曲

扭曲的应用没有扭曲,第1张

扭曲的应用没有扭曲

您需要

twistd
从Twisted将脚本作为模块导入并调用它。使用您现有的命令行,最简单的解决方案是导入
sys
模块以替换
argv
命令行,使其看起来像您想要
twistd
运行方式,然后运行它。

这是一个简单的示例脚本,它将使用您现有的命令行并使用Python脚本而不是Shell脚本运行它:

#!/usr/bin/pythonfrom twisted.scripts.twistd import runfrom sys import argvargv[1:] = [    '-y', 'myapp.py',    '--pidfile', '/var/run/myapp.pid',    '--logfile', '/var/run/myapp.log']run()

如果您希望将其很好地捆绑到一个包中,而不是硬编码路径,则可以

myapp.py
通过查看
__file__
每个模块中Python设置的特殊变量来确定路径。将其添加到示例如下所示:

#!/usr/bin/pythonfrom twisted.scripts.twistd import runfrom my.application import some_modulefrom os.path import join, dirnamefrom sys import argvargv[1:] = [    '-y', join(dirname(some_module.__file__), "myapp.py"),    '--pidfile', '/var/run/myapp.pid',    '--logfile', '/var/run/myapp.log']run()

并且您显然可以做类似的事情来计算适当的pidfile和logfile路径。

一个更全面的解决方案是编写一个插件的

twistd
。Axiom对象数据库项目中的公理命令行程序是一个经过测试的,有价值的示例,说明如何对上述内容执行类似的命令行 *** 作
twistd
,但是对命令行选项的处理更为全面,不同非扭转运行实用程序功能,等等。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存