如何让我的D-Bus服务在空闲时自动退出?

问题描述 投票:0回答:1

我有一个用 Python 和 GDBus 编写的 D-Bus 服务(使用 PyGObject 提供的绑定)。

由于它是用 Python 编写的并且有一些依赖项,因此该服务具有相对较大的内存占用(大约 30MiB)。仅当用户实际使用客户端应用程序时才需要它,因此大多数时候它只是闲置。它作为 D-Bus 激活的 systemd 服务安装,因此它是按需启动的。

我正在寻找一种方法,让它在一段时间没有使用时自动退出。我希望 systemd 可以自动为我做这件事,但它似乎不支持这一点。不过,它确实为自己的服务实现了此功能。我还发现了这个 PoC 用于无竞争的空闲退出 GDBus 服务,但它是用 C 编写的。

python service systemd dbus gdbus
1个回答
0
投票

我最终编写了我自己的Python模块,它实现了空闲时无竞争退出,灵感来自于systemd代码和cgwalters的PoC

它作为 PyPI 包提供,因此您可以通过 pip 安装它:

pip install gdbus-util

它记录在 https://python-gdbus-util.readthedocs.io.

示例用法可以在这里找到。

© www.soinside.com 2019 - 2024. All rights reserved.