【发布时间】:2017-05-07 10:55:00
【问题描述】:
我很好奇如何为 DBus 启动我自己的服务。 在官方网站上,我发现了很多关于从客户端的角度使用 DBus 服务的信息,但是如何启动和开发服务还不够: 1)接口文件ServiceName.xml应该放在哪里 2)服务文件ServiceName.service应该放在哪里 3)如何手动启动服务,而不是在系统启动时。
谁能帮助我或提供一些有用的链接?
【问题讨论】:
我很好奇如何为 DBus 启动我自己的服务。 在官方网站上,我发现了很多关于从客户端的角度使用 DBus 服务的信息,但是如何启动和开发服务还不够: 1)接口文件ServiceName.xml应该放在哪里 2)服务文件ServiceName.service应该放在哪里 3)如何手动启动服务,而不是在系统启动时。
谁能帮助我或提供一些有用的链接?
【问题讨论】:
创建一个由操作系统的服务管理器(initd、systemd 等)启动的服务。在该程序中,使用 dbus 库实例化服务器端对象。
通常,您将配置为在启动时启动服务,但使用 systemd 也可以将其配置为在某些连接到特定套接字或尝试使用特定设备对象时启动。它被称为“套接字激活”和“dbus 激活”(参见当前的 systemd 文档)。
如果您想手动启动服务 - 然后执行 systemctl disable <service-name> 以禁用启动时启动。手动启动服务:systemctl start <service-name>。
*.xml 文件不是强制性的。也许看看其他包,看看他们把这些文件放在哪里。
*.systemd 文件应位于某个常用位置(请参阅 systemd 文档),例如 /usr/lib/systemd/system。
【讨论】: