【问题标题】:Erlang: net_adm:names() returns {error, nxdomain}Erlang:net_adm:names() 返回 {error, nxdomain}
【发布时间】:2014-08-18 17:37:27
【问题描述】:

执行 net_adm:names() 时,我收到错误 {error, nxdomain}。 nxdomain 表示域名不存在,但我能够在终端中 ping 我的主机名,并在不同终端上启动的 Erlang 节点之间成功 ping。因此,我不确定如何解决这个问题?

谢谢。

【问题讨论】:

  • 尝试使用 -sname 启动两个节点。这不需要有效的主机名。

标签: erlang


【解决方案1】:
net_adm:names()

默认为本地主机,通过

获取
net_adm:localhost()

这又使用了这两个函数:

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 应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多