首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >eJabberd leave_cluster失败

eJabberd leave_cluster失败
EN

Server Fault用户
提问于 2023-04-27 10:21:37
回答 1查看 34关注 0票数 1

eJabberd版本: 22.05操作系统:Ubuntu18.04LTS安装:来自

我们有一个ejabberd集群,其中三个节点具有下面列出的节点名称。

  1. ‘'ejabberd@ltxmpp2.gims’
  2. ‘'ejabberd@ltxmpp1.gims’
  3. ‘'ejabberd@ltxmpp3.gims’

当我们尝试使用以下命令从集群中移除节点时

ejabberdctl leave_cluster 'ejabberd@ltxmpp2.gims'

该命令在节点ltxmpp2.gims抛出错误时发出。

ejabberd@ltxmpp2 2:~$ ejabberdctl leave_cluster 'ejabberd@ltxmpp2.gims‘到节点ejabberd@ltxmpp2.gims’失败的RPC连接:{'EXIT',{undef,[{erl_error,format_exception,[2,error,undef,[{net_adm,ping,[]},{ejabberd_cluster_mnesia,左,1,},{ejabberd_ctl,call_command,4 },{ejabberd_ctl,try_call_command,4,},{ejabberd_ctl,process2,4,]},{ejabberd_ctl,process,2,},{erpc,execute_call,4,},#Fun,#Fun],[]},{ejabberd_ctl,try_call_command,4,},{ejabberd_ctl,process2,4,},{ejabberd_ctl,process,2,},{ejabberd_ctl,process,1,[]}\

启动ejabberd节点的命令:

代码语言:javascript
复制
  start            Start in server mode
  foreground       Start in server mode (attached)
  foreground-quiet Start in server mode (attached), show only critical messages
  live             Start in interactive mode, with Erlang shell
  iexlive          Start in interactive mode, with Elixir shell

与正在运行的ejabberd节点交互的命令:

代码语言:javascript
复制
  debug            Attach an interactive Erlang shell to a running node
  iexdebug         Attach an interactive Elixir shell to a running node
  etop             Attach to a running node and start Erlang Top
  ping             Send ping to the node, returns pong or pang
  started|stopped  Wait for the node to fully start|stop

启动ejabberd节点时的可选参数:

代码语言:javascript
复制
  --config-dir dir   Config ejabberd:    /usr/local/etc/ejabberd
  --config file      Config ejabberd:    /usr/local/etc/ejabberd/ejabberd.yml
  --ctl-config file  Config ejabberdctl: /usr/local/etc/ejabberd/ejabberdctl.cfg
  --logs dir         Directory for logs: /usr/local/var/log/ejabberd
  --spool dir        Database spool dir: /usr/local/var/lib/ejabberd
  --node nodename    ejabberd node name: ejabberd@ltxmpp2.gims

有人能解释一下错误的原因吗。

EN

回答 1

Server Fault用户

发布于 2023-04-27 11:57:56

安装:来源:

这意味着您从ubuntu安装了erlang包,并从源代码编译了ejabberd。

错误,undef,[{net_adm,ping,,[]},

如果我正确理解的话,这条长长的错误信息中最相关的部分就是这一行。

这一行可能意味着:

  • ( A)无法找到erlang模块net_adm.beam,
  • ( B)或者,该模块不包含一个名为ping的函数,其中包含一个参数。

让我们在安装过程中再深入挖掘一下,看看到底是什么问题。

A.1) ubuntu中的文件net_adm.beam包含在包erlang-base中。你有安装那个包裹吗?

https://packages.ubuntu.com/search?searchon=contents&keywords=net_adm.beam&mode=exactfilename&suite=kinetic&arch=any

安装好了吗?然后:

A.2)检查自己是否可以在erlang安装中使用函数net_adm:ping:

代码语言:javascript
复制
$ erl
Erlang/OTP 25 [erts-13.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [jit:ns]

Eshell V13.2  (abort with ^G)
1> net_adm:ping('aaaa').               
pang
2> q().

它在一个简单的erlang壳中工作吗?然后:

A.3)检查ejabberd安装是否可以使用函数net_adm:ping:

代码语言:javascript
复制
$ ejabberdctl live
...
(ejabberd2@localhost)1> net_adm:ping('aaaa').
pang
(ejabberd2@localhost)2> q().
ok

( B)这一功能早在二郎时代就被纳入了.您安装了什么erlang版本?

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1129812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档