1

好的,所以,我可能会错过这里的情节,但真的需要一些帮助。我对开发等还是很陌生,现在已经到了需要实现 DBus(或其他一些程序间通信)的地步。我发现这个概念有点难以理解。

我的实现将是使用 HTML 网站来更改某些变量以在另一个程序中使用,从而允许程序在其工作中动态更改。我正在使用 Raspbian 在树莓派上执行此操作。我正在运行一个网络服务器来托管我的网站,这就是混乱的来源。

据我了解,DBus 运行一项服务,允许您从另一个程序中的程序调用方法。那么这是否意味着我的网站需要运行 DBUS 服务以允许我从它调用方法到我的程序中?更复杂的是,我使用 Python 进行编码,所以我不确定是否可以在我的网站上运行 Python 脚本来运行 DBUS 服务。使用 JavaScript 会更好吗?

对我来说,最合乎逻辑的解决方案是运行一个 DBUS 服务,该服务以某种方式从不同的程序中导入方法,并且可以被其他想要运行这些方法的人查询。那可能吗?

帮助将不胜感激!先感谢您!

4

2 回答 2

1
  • 那么这是否意味着我的网站需要运行 DBUS 服务以允许我从它调用方法到我的程序中?

一个 dbus 后台进程(一个守护进程)将在您的 Web 服务器上运行,是的。事实上 dbus 提供了两个守护进程。一种是允许对象接收系统信息的系统守护程序(例如打印机可用性),第二种是通用用户应用程序到应用程序 IPC 守护程序。它是您绝对用于不同应用程序进行通信的第二个守护程序。

  • 我正在使用 Python 进行编码,因此我不确定是否可以在我的网站上运行 Python 脚本来允许我运行 DBUS 服务。

使用python没有问题;dbus 绑定了许多语言(例如Java、perl、ruby、c++、Python)。dbus 对象可以映射到 python 对象。

  • 最合乎逻辑的解决方案是运行单个 DBUS 服务,该服务以某种方式从不同程序导入方法,并且可以被其他想要运行这些方法的人查询。那可能吗?

正确 - dbus 提供了一种机制,客户端进程将通过该机制创建一个或多个 dbus 对象,这些对象允许该进程为其他服务提供其他支持 dbus 的进程。

于 2013-06-24T08:57:09.433 回答
0

这听起来像是您应该编写一个隔离的 D-Bus 服务来充当数据存储,并在脚本中与它同步通信以写入和读取值。您可以使用shelve在服务调用之间保留值。

在本教程中,“进行方法调用”部分涵盖了同步调用,“导出对象”涵盖了编写大部分 D-Bus 服务。

于 2013-06-24T08:52:32.837 回答