我有一个eunit测试,它生成一个唯一的节点名并开始分发:
{A,B,C} = now(),
Nodename = list_to_atom(lists:flatten(io_lib:format(
"test-~b-~b-~b@localhost", [A, B, C]))),
{ok, _} = net_kernel:start([Nodename, shortnames]),只要以前有一个分布式Erlang节点在机器上运行,因此epmd仍然在运行,这就可以正常工作,但是在构建服务器上,我不能假设情况是这样的。
我在测试中添加了以下内容,从而解决了这个问题:
_ = os:cmd("epmd -daemon"),但感觉像是黑客袭击。是否有更好/更好的方法确保在运行net_kernel:start之前启动epmd?
https://stackoverflow.com/questions/18240319
复制相似问题