使用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套接字进行了测试。在
  • 更好的文档。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jsoup有效文件路径抛出java。木卫一。FileNotFoundException   java如何在不删除和添加Mapbox中的层的情况下更改SymbolLayer的Z值?   java计算用户定义年数内四个季度的降雨量   如何在Java中轻松地将格式为“20 0F 01”的字符串更改为十六进制值?   java在JPA或Hibernate中“持久类”和“实体”之间有什么区别?   java Android:AlarmManager“缺少对unregisterReceiver()的调用?”当按下后退按钮时   logcat中的java错误“isDataSchedulerEnabled():false”   java i/p col特性必须是字符串或数字类型,但不能是org。阿帕奇。火花利纳格小姐。向量   java如何从Post请求url和浏览器转储中隐藏密码   多线程javamail中的java问题   java我的用户应该直接连接到数据库吗?如何将用户连接到数据库;   java如何获得Spring数据JPA存储库工厂?   windows java字节数组转换为字符串,但不同的操作系统会产生不同的结果   java代码在eclipse中编译,但不在命令行上编译