如何使用python使用XMPP / EJABBERD服务器重新启动操作系统

时间:2012-09-04 07:25:51

标签: xmpp ejabberd

我想在我的网络上创建一个XMPP服务器,然后用python向它发送消息,这样该服务器就可以重新启动网络上的目标计算机,现在我该如何设置这个服务器,我该如何做其余的这个过程? TNX

1 个答案:

答案 0 :(得分:0)

我不确定你在什么情况下尝试这样做,但XMPP已经在通常的聊天和即时消息(例如负载均衡器,rpc,......)之外的上下文中使用。

有几种方法可以做到这一点。我现在能想到的一种方法是使用Jabber RPC xep-0009来表示:

This specification defines an XMPP protocol extension for 
transporting XML-RPC encoded requests and responses between two XMPP entities. 
The protocol supports all syntax and semantics of XML-RPC except that 
it uses XMPP instead of HTTP as the underlying transport.

这里的工作流程是如何使这项工作:

  1. 您需要一台启动并运行的jabber服务器,如主机-A
  2. 所示
  3. 您需要在网络中的其他主机上配置启动服务(例如在主机-B,主机-C,主机-D上)。这个启动服务只不过是一个xmpp客户端守护进程,它将在主机启动时在后台启动。
  4. 这个配置为启动服务的xmpp客户端是特殊的,因为它们将接受传入的rpc调用(支持XEP-0009)并在主机上执行接收的命令。
  5. 收到的RPC命令可以与shutdownkill -9 xxxx同义,具体取决于您的具体需求。
  6. 最后,host-C上的xmpp客户端可以将一个或多个包含在节中的命令发送到在主机-B上运行的xmpp客户端。
  7. 您可以使用现有的python xmpp client library之一,只需为您的用例扩展其工作示例。您还需要检查有关如何配置启动服务的详细信息,具体取决于您的操作系统(例如update-rc.d for ubuntusc.exe for windows