基础¶
应用程序¶
Twisted 程序通常使用 twisted.application.service.Application()
。此类通常保存运行服务器的所有持久配置,例如
要绑定的端口,
必须保持或尝试连接的位置,
要执行的周期性操作,
以及与您的
Application
相关的几乎所有其他内容。
它是实现 twisted.application.service.IService
的服务树的根对象。
其他操作指南描述了如何为 Application
编写自定义代码,但本指南描述了如何使用已编写的代码(可以是 Twisted 的一部分或来自第三方 Twisted 插件开发人员)。Twisted 发行版附带一个重要的工具来处理 Application
:twistd(1)
。
Application
只是 Python 对象,可以像其他任何对象一样创建和操作。
twistd¶
Twisted Daemon 是一个程序,它知道如何运行 Application
。严格来说,twistd
不是必需的。获取应用程序,获取 IService
组件,调用 startService()
,在 reactor 关闭时安排 stopService()
,然后调用 reactor.run()
可以手动完成。
但是,twistd
提供了许多选项,这些选项对于程序设置非常有用
选择 reactor(有关 reactor 的更多信息,请参阅 选择 Reactor),
日志记录配置(有关更多信息,请参阅 logger 文档),
守护进程(分叉到后台),
以及 更多。
twistd
支持上面提到的所有应用程序,以及一个额外的应用程序。有时,直接在 Python 中编写用于构建类的代码很方便。此类 Python 文件的一个主要来源是 examples 目录。当使用定义名为 application
的 Application
对象的纯 Python 文件时,请使用 -y
选项。
当 twistd
运行时,它会在 twistd.pid
文件中记录其进程 ID(这可以通过命令行开关配置)。为了关闭 twistd
进程,请杀死该 PID。通常的做法是
kill `cat twistd.pid`
要阻止 twistd
成为守护进程,您可以传递 --no-daemon
选项(或 -n
,与其他简短选项一起使用)。
与往常一样,详细内容请参阅手册页。