instalar - Iniciar un nodo esclavo Erlang en escript falla al usar Erlang personalizado en Ubuntu 10.4
install rabbitmqctl ubuntu (1)
Tengo el siguiente escript:
#!/usr/bin/env escript
%%! -name [email protected]
main(_) ->
NodeName = test,
Host = ''127.0.0.1'',
Args = "",
{ok, _Node} = slave:start_link(Host, NodeName, Args),
io:format("Node started successfully!").
Cuando lo ejecuto en Ubuntu 10.04 obtengo esto:
$ ./start_slave
Node started successfully!
$
Quiero instalar mi propio Erlang (última versión, archivos compilados de depuración para dializador, etc.) ya que la instalación de stock de Erlang en Ubuntu carece de algunas características. Puse mis binarios de Erlang dentro ~/Applications/bin
. El inicio de Erlang normalmente funciona, y el inicio de nodos esclavos dentro de un shell de Erlang también funciona.
Sin embargo, ahora mi escript no funciona. Después de unos 60 segundos, devuelve un error:
$ ./start_slave
escript: exception error: no match of right hand side value {error,timeout}
Incluso si cambio la primera línea al escript para usar mi versión de erlang, todavía no funciona:
#!/home/user/Applications/bin/escript
El nodo esclavo se inicia con una llamada a erlang:open_port/2
que parece estar usando sh
que a su vez no lee mi archivo .bashrc
que establece mi PATH
entorno PATH
personalizada. El tiempo de espera parece ocurrir cuando el slave:start_link/3
espera que el nodo esclavo responda, lo que nunca ocurre.
¿Cómo puedo rodar mi propia instalación de Erlang e iniciar los nodos esclavos dentro de las secuencias en Ubuntu 10.4?
Actualización: he intentado agregar la ruta a mi Erlang personalizado dentro de /etc/environment
(donde está configurada la PATH
original en Ubuntu) pero esto no cambia nada ...
Actualización 2: Aceptar la única respuesta dada (aunque no resolvió el problema). Las versiones de Ubuntu y Erlang son un poco viejas ahora y esto podría no ser un problema más.
¿Es posible que el nodo esclavo se esté ejecutando con la otra instalación de Erlang? Enumerado por razones de error de tiempo de espera en la documentación sobre nodos esclavos , vi "los nodos Erlang tienen cookies diferentes" que, en mi opinión, podrían ocurrir en ese caso.
Si este fuera el caso, ejecutar ps -FC erlang
mientras espera el tiempo de espera debería mostrar los procesos con diferentes rutas.