2014-10-10 7 views
0

Я использовал для запуска двух серверов ejabberd вместе с сервером RabbitMQ на одном поле. Однако, что-то упало и EPMD показывает, что следующий:Проблемы Erlang epmd - RabbitMQ и Ejabberd на том же хосте

$ ./epmd -names epmd: up and running on port 4369 with data: name ejabberdjabberpl at port 48654 name ejabberd at port 55243 name rabbit_crypto at port 25673 name rabbit at port 38794

Однако только ejabberdjabberpl бега - другие мертв, и они не прослушивают порты. Теперь, когда я пытаюсь запустить разбитый сервер RabbitMQ или другой сервер ejabberd, они оба говорят, что ejabberd или rabbit или rabbit_crypto уже существуют на узле.

Я пытался удалить с пересадками, но он не работает:

$ ./epmd -stop rabbit epmd: local epmd responded with <>

ответ

1

Как не знаете ли вы, что там нет кролика и ejabberd больше? Типичная проблема с приложениями, основанными на erlang, заключается в том, что в скриптах используется так называемое «cookie» для связи с службами. И если кто-то случайно удалит этот секретный файл cookie, скрипты перестанут работать.

Постарайтесь убедиться, что кролик и ejabberd остановился, осматривая ps aux | grep beam

+0

Я проверил (используя netstat), если приложение прослушивает эти порты. Все лучи были удалены ранее. – bluszcz

0

Если вы уверены, что ни один код кластера Erlang фактически не работает, когда это произойдет, вы должны на самом деле убить/перезапуск EPMD. Иногда он застрял со старыми данными, что мешает вам перезапустить службу.

+0

Я не хочу убивать другие узлы, которые работают на одном и том же epmd. – bluszcz

Смежные вопросы