Запуск ведомого узла Erlang в escript перестал работать при использовании пользовательского Erlang в Ubuntu 10.4

У меня есть следующий escript:

#!/usr/bin/env escript
%%! -name test_starter@127.0.0.1

main(_) ->
    NodeName = test,
    Host = '127.0.0.1',
    Args = "",

    {ok, _Node} = slave:start_link(Host, NodeName, Args),
    io:format("Node started successfully!").

При выполнении его на Ubuntu 10.04 я получаю это:

$ ./start_slave
Node started successfully!
$

Я хочу установить свой собственный Erlang (последняя версия, отладка скомпилированные файлы для dialyzer и т.д.), так как установка запаса Erlang на Ubuntu испытывает недостаток в некоторых функциях. Я вставил свои двоичные файлы Erlang ~/Applications/bin. Запуск Erlang обычно работает, и стартовые ведомые узлы в оболочке Erlang работы также.

Однако теперь мой escript не работает. Приблизительно после 60 секунд это возвращает ошибку:

$ ./start_slave                                   
escript: exception error: no match of right hand side value {error,timeout}

Даже если я изменяю первую строку на escript для использования моей erlang версии, это все еще не работает:

#!/home/user/Applications/bin/escript

Ведомый узел запускается с вызова к erlang:open_port/2 который, кажется, использует sh который в свою очередь не читает мой .bashrc файл, который устанавливает мое пользовательское PATH переменная среды. Тайм-аут, кажется, происходит когда slave:start_link/3 ожидает ведомого узла для ответа, который он никогда не делает.

Как я могу прокрутить свою собственную установку Erlang и запустить ведомые узлы внутри escripts на Ubuntu 10.4?

Обновление: я попытался добавить путь к своему пользовательскому Erlang внутри /etc/environment (где оригинал PATH в Ubuntu установлен), но это ничего не изменяет...

Обновление 2: Принятие единственного данного ответа (даже при том, что это не решило проблему). Ubuntu и версии Erlang немного стары теперь, и это не могло бы больше быть проблемой.

8
задан Adam Lindberg 21 March 2011 в 08:20
поделиться

1 ответ

Возможно ли, что ведомый узел запускается с другой установкой Erlang? В документации по ведомым узлам в разделе "Причины ошибки тайм-аута" я увидел "у узлов Erlang разные cookies", что, как мне кажется, может иметь место в этом случае.

Если это так, то выполнение ps -FC erlang в ожидании таймаута должно показать вам процессы с разными путями.

1
ответ дан 6 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: