使用systemd套接字激活的套接字服务器实现
systemd-socketserver的Python项目详细描述
系统套接字服务器
systemd socketserver是一个简单的python3包,它提供了SystemdSocketServer
类,
与systemd的socket激活功能协同工作的socket服务器实现。在
对于编写基本的套接字激活守护程序非常有用。在
安装
从PyPi安装:
pip install systemd-socketserver
或从Git克隆并从源安装:
^{pr2}$基本用法
有关完整示例,请参见example
目录。在
下面的Python模块在通过.socket
单元激活时,将把第一个发送行回送到套接字
然后断开。在
class EchoHandler(socketserver.StreamRequestHandler):
def handle(self):
self.data = self.rfile.readline()
self.wfile.write(self.data.upper())
server = systemd_socketserver.listen_server(EchoHandler)
if server is None:
print('this example only supports socket activation', file=sys.stderr)
return
server.listen_forever()
特点:
- 在
支持并自动检测侦听和接受套接字(
在.socket
单元中的Accept=true|false
) - 在
支持命名文件描述符,使不同的处理程序很容易绑定到不同的套接字。在
此功能依赖于的最新软件包版本中当前不存在的功能 python-systemd,即
listen_fds_with_names
函数。 在本例中,调用listen_servers_with_names
将抛出一个NotImplementedException
。在从源代码构建pythonsystemd将包括对
listen_fds_with_names
的支持,因此这一特性 会有用的。在有关此功能的示例,请参阅
在example
目录中的代码。在
已知限制
- 此模块仅使用INET套接字进行了测试。在
- 更好的文档。在
- 项目
标签: