我对eJabberd和Erlang很新。当我为ejabberd开发自定义注册模块时,我不得不使用inets应用程序,所以我在application:start(inets)
方法中使用start
启动它。我也想在stop方法中停止它,但我犯了一个小错误并写了application:stop(inet)
而不是application:stop(inets)
。显然,这不是一个小错误!现在我的ejabberd显然在关闭的时候冻结了。 ejabberdctl status
返回
The node ejabberd@localhost is stopping with status: started
Failed RPC connection to the node ejabberd@localhost: {'EXIT',
{timeout,
{gen_server,call,
[application_controller,
which_applications]}}}
和ejabberdctl start
返回
ERROR: The ejabberd node 'ejabberd@localhost' is already running.
但我无法使用任何xmpp信使连接到服务器。有什么方法可以以某种方式迫使它关闭?
我很感激任何帮助!
由于
答案 0 :(得分:3)
最后!在了解了有关erlang节点和ejabberd的更多信息后,我发现了一个bash脚本here
这将允许你杀死任何erlang节点。运行epmd -names
后,我确保ejabberd在“ejabberd”节点上运行而不是“ejabberd @ localhost”,我所要做的只是执行
./kill-erlang-node.sh ejabberd
我成功设法使用ejabberdctl start
哦!并且显然停止使用inets是一件疯狂的事情!不要这样做!以往!!