Estoy ejecutando un sistema de erlang distribuido con un nodo por máquina.Forma más sencilla de informar un nodo de erlang local desde un comando de shell
Como DNS no está disponible, todos los inicio con el mismo parámetro -sname
, por ejemplo,
erl -sname foo ...
Un demonio-sistema operativo tiene la función de ejecutar shell (/bin/sh
) comandos cuando se produce un cierto evento (cuando un dispositivo USB está pugged en el sistema).
Estoy buscando una forma simple de llamar a una función en el nodo local de erlang en esta máquina con este comando de shell (tomando más medidas después de que se haya detectado y montado el dispositivo USB).
estaba pensando en llamar erl -sname bar
de la concha y ejecutar un código que se parece a
[_,Host] = string:tokens(atom_to_list(node()), "@"),
The_node = list_to_atom("[email protected]" ++ Host),
spawn(The_node, My_fun),
Es este el camino a seguir? O está comenzando una nueva omisión de nodos de erlang (no lo hará con frecuencia)
¿O es mejor hablar un socket abierto por gen_tcp, o leer una tubería con nombre.
¿O alguna otra sugerencia?
BTW esto se ejecuta en un sistema Unix.
+1 para erlang y un uso inteligente de él. – gahooa