2014-11-29 2 views
2

Я довольно новичок в eJabberd и Erlang. поскольку я разрабатывал пользовательский модуль регистрации для ejabberd, в какой-то момент мне пришлось использовать приложение inets, поэтому я начинаю его с application:start(inets) в start. Я также хотел остановить его в методе остановки, но я сделал небольшую ошибку и написал application:stop(inet) вместо application:stop(inets). по-видимому, это была небольшая ошибка! теперь мой ejabberd, очевидно, замораживается где-то, закрываясь. ejabberdctl status возвращаетЛюбой способ заставить остановить eJabberd?

The node [email protected] is stopping with status: started 
Failed RPC connection to the node [email protected]: {'EXIT', 
                 {timeout, 
                 {gen_server,call, 
                 [application_controller, 
                  which_applications]}}} 

и ejabberdctl start возвращает

ERROR: The ejabberd node '[email protected]' is already running. 

, но я не могу подключиться к серверу с помощью любого XMPP гонца. есть ли способ каким-то образом заставить его закрыть?

Буду признателен за любую помощь!

Thanks

ответ

3

Наконец-то! узнав больше об узлах erlang и ejabberd, я нашел сценарий bash here , который позволит вам убить любой узел erlang. После запуска epmd -names я убедился ejabberd был запущен на узле «ejabberd», а не «ejabberd @ lokalny_host» Все, что я должен был сделать для преобразования приложений

./kill-erlang-node.sh ejabberd 

Я успешно удалось перезапустить ejabberd с помощью ejabberdctl start

о ! и, судя по всему, остановить инет было сумасшедшим делом! не делай этого! Когда-либо!!

+1

Да, если вы останавливаете inets, вы теряете способность кластера (или связываться с этим узлом с другим локальным узлом). –

+0

@ Mickaël хм, я вижу, да, я думал, что другие части эяберберга должны использовать его, но не знали, как, спасибо за понимание :) – mmbrian