2012-02-10 36 views

回答

5

问题简化为如何在Erlang中进行rpc调用的问题。

  1. 确保ejabberd以节点主机部分的全限定主机名或IP地址运行。这在我的安装中指定为/etc/ejabberd/ejabberdctl.cfg中的EJABBERD_NODE。如果您必须在此步骤中更改主机名,请参阅https://git.process-one.net/ejabberd/mainline/blobs/raw/v2.1.10/doc/guide.html#htoc79(“更改计算机主机名”)。

  2. 使用-name或-sname启动您的shell或脚本,并使用与上述限制相同的主机。

  3. 您已准备好使用Erlang的内置RPC。例如:

(在你的shell或脚本)

Cookie = 'YOUR_EJABBERD_COOKIE'. % mine was found in /var/lib/ejabberd/.erlang.cookie 
EjabberdNode = '[email protected]'. % or whatever you set as EJABBERD_NODE 
erlang:set_cookie(EjabberdNode, Cookie). 
net_adm:ping(EjabberdNode). 
rpc:call(EjabberdNode, mnesia, system_info, [tables]). 
2

只需使用命令ejabberdctl调试

mnesia:info(). %to overview mnesia 
mnesia:schema(schema). %see table named schema`s detail