扭曲的UDP服务器 - daemonize?

时间:2010-10-14 08:25:04

标签: python twisted daemon

我有以下使用Twisted的UDP服务器:

# init the thread capability
threadable.init(1)

# set the thread pool size
reactor.suggestThreadPoolSize(32)

class BaseThreadedUDPServer(DatagramProtocol):
    def datagramReceived(self, datagram, (host, port)):
        #do some stuff here...

def main():
    reactor.listenUDP(PORT, BaseThreadedUDPServer())
    reactor.run()

if __name__ == '__main__':
    main()

我希望能够守护这个,所以从我读过的内容我应该用.tac文件做一些事我可以用“twistd -y my_udp_server_file.tac”开头 - 问题是我不能找到有关如何使用此类设置执行此操作的任何文档。我所能找到的就是如何守护简单的TCP echo服务器(带有.tac文件)的例子 - 我需要一个像我一样的多线程UDP服务器。

任何方向都将不胜感激。

2 个答案:

答案 0 :(得分:3)

twistd中的守护程序代码并不关心您是否正在提供UDP或TCP。守护UDP服务器的方式与守护TCP服务器的方式相同。您应该能够以TCP echo服务器为例为UDP服务器编写.tac文件。

答案 1 :(得分:3)

试试这个:

import twisted.application
application = twisted.application.service.Application("Scotty's UDP server")
twisted.application.internet.UDPServer(PORT, BaseThreadedUDPServer()).setServiceParent(application)