現象
Erlangで書いたアプリをCircleCIでテストすると以下のエラーがでる。
Protocol 'inet_tcp': register/listen error: econnrefused
sshでログインするとnet_kernel:start()が失敗している。
$ erl
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [smp:32:2] [ds:32:2:10] [async-threads:10] [hipe] [kernel-poll:false] [sharing-preserving]
Eshell V8.1 (abort with ^G)
1> net_kernel:start(['foo@127.0.0.1', longnames]).
{error,{{shutdown,{failed_to_start_child,net_kernel,
{'EXIT',nodistribution}}},
{child,undefined,net_sup_dynamic,
{erl_distribution,start_link,
[['arkps@127.0.0.1',longnames],false]},
permanent,1000,supervisor,
[erl_distribution]}}}
原因
epmd が起動していない。
対策
テスト実行前に epmd -daemon を追加する。