1

net_adm:names() を実行すると、エラー {error, nxdomain} が発生します。nxdomain はドメイン名が存在しないことを意味しますが、ターミナルでホスト名に ping を実行し、異なるターミナルで起動された Erlang ノード間で正常に ping を実行できます。そのため、これを修正する方法がわかりませんか?

ありがとう。

4

1 に答える 1

1
net_adm:names()

デフォルトはローカルホストで、これは経由で取得されます

net_adm:localhost()

これは、次の 2 つの関数を使用します。

inet:gethostname().
net_db:res_option(domain).

この情報はシステムから取得されるため、返される内容を確認してください。

hostname
cat /etc/resolv.conf #or something else depending on OS

お使いのオペレーティング システムが間違ったドメインを Erlang に報告する場合があるため、ドメインを手で入力する場合は ping できますが、net_db:res_option(domain) から取得したドメインを使用する場合はできません。/etc/resolv.conf を編集すると問題が解決するはずです。

于 2014-08-18T09:37:27.553 に答える