为什么我无法在 Windows 中启动命名的 Erlang 节点?

发布于 2024-07-21 06:15:40 字数 4488 浏览 6 评论 0原文

我正在尝试使用 Windows XP Home 中的 -sname 选项启动一个命名的 Erlang 节点,但是当我运行 erl 时,它会打印出一条很长的错误消息(我不明白),然后退出:

> erl -sname allyourcode
{error_logger,{{2009,5,25},{16,20,57}},"Protocol: ~p: register error: ~p~n",["in
                                                                             et_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,s
                                                                                                                                                 tart_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,
                                                                                                                                                                                                                      init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]}
{error_logger,{{2009,5,25},{16,20,57}},crash_report,[[{initial_call,{net_kernel,
                                                                     init,['Argument__1']}},{pid,},{registered_name,[]},{error_info,{exit,{er
                                                                                                                                           ror,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[
                                                                                                                                                                                                                           net_sup,kernel_sup,]},{messages,[]},{links,[#Port,]},{dicti
                                                                                                                                                                                                                                                                                 onary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{st
                                                                                                                                                                                                                                                                                                                                                               ack_size,24},{reductions,490}],[]]}
{error_logger,{{2009,5,25},{16,20,57}},supervisor_report,[{supervisor,{local,net
                                                                       _sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{p
                                                                                                                                                      id,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[allyourcode,shortn
                                                                                                                                                                                                                    ames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2009,5,25},{16,20,57}},supervisor_report,[{supervisor,{local,ker
                                                                       nel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined
                                                                                                                                         },{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent}
                                                                                                                                        ,{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2009,5,25},{16,20,57}},std_info,[{application,kernel},{exited,{s
                                                                               hutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kern
                                                  el,{shutdown,{kernel,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

I'd like to include erl_crash.dump 文件,但我不知道这样做的好方法,因为它很长。

起初,我以为我遇到了防火墙问题,因为我第一次尝试这样做时,我的防火墙询问我是否愿意向不同的程序授予权限,我这样做了; 但是,即使禁用防火墙后,我仍然遇到同样的问题。

使用 -name 似乎也没有帮助。

I'm trying to start a named Erlang node using the -sname option in Windows XP Home, but when I run erl, it prints out a long error message, which I don't understand, and quits:

> erl -sname allyourcode
{error_logger,{{2009,5,25},{16,20,57}},"Protocol: ~p: register error: ~p~n",["in
                                                                             et_tcp",{{badmatch,{error,econnrefused}},[{inet_tcp_dist,listen,1},{net_kernel,s
                                                                                                                                                 tart_protos,4},{net_kernel,start_protos,3},{net_kernel,init_node,2},{net_kernel,
                                                                                                                                                                                                                      init,1},{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}]}
{error_logger,{{2009,5,25},{16,20,57}},crash_report,[[{initial_call,{net_kernel,
                                                                     init,['Argument__1']}},{pid,},{registered_name,[]},{error_info,{exit,{er
                                                                                                                                           ror,badarg},[{gen_server,init_it,6},{proc_lib,init_p_do_apply,3}]}},{ancestors,[
                                                                                                                                                                                                                           net_sup,kernel_sup,]},{messages,[]},{links,[#Port,]},{dicti
                                                                                                                                                                                                                                                                                 onary,[{longnames,false}]},{trap_exit,true},{status,running},{heap_size,610},{st
                                                                                                                                                                                                                                                                                                                                                               ack_size,24},{reductions,490}],[]]}
{error_logger,{{2009,5,25},{16,20,57}},supervisor_report,[{supervisor,{local,net
                                                                       _sup}},{errorContext,start_error},{reason,{'EXIT',nodistribution}},{offender,[{p
                                                                                                                                                      id,undefined},{name,net_kernel},{mfa,{net_kernel,start_link,[[allyourcode,shortn
                                                                                                                                                                                                                    ames]]}},{restart_type,permanent},{shutdown,2000},{child_type,worker}]}]}
{error_logger,{{2009,5,25},{16,20,57}},supervisor_report,[{supervisor,{local,ker
                                                                       nel_sup}},{errorContext,start_error},{reason,shutdown},{offender,[{pid,undefined
                                                                                                                                         },{name,net_sup},{mfa,{erl_distribution,start_link,[]}},{restart_type,permanent}
                                                                                                                                        ,{shutdown,infinity},{child_type,supervisor}]}]}
{error_logger,{{2009,5,25},{16,20,57}},std_info,[{application,kernel},{exited,{s
                                                                               hutdown,{kernel,start,[normal,[]]}}},{type,permanent}]}
{"Kernel pid terminated",application_controller,"{application_start_failure,kern
                                                  el,{shutdown,{kernel,start,[normal,[]]}}}"}

Crash dump was written to: erl_crash.dump
Kernel pid terminated (application_controller) ({application_start_failure,kernel,{shutdown,{kernel,start,[normal,[]]}}})

I'd like to include the erl_crash.dump file, but I don't know a good way to do that, because it's pretty long.

At first, I thought I was having a firewall issue, because the first time I tried to do this, my firewall asked if I would grant permission to different programs, which I did; however, even after disabling my firewall, I'm still having the same problem.

Using -name instead doesn't seem to help either.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

桃扇骨 2024-07-28 06:15:40

是的,您甚至可能需要重新启动操作系统 - 要检查这是否属实,您也可以简单地启动具有不同名称的节点,而且通常最好使用完全限定名称,例如:

erl -name [电子邮件受保护] -setcookie KILLER

然后,使用启动另一个:

erl -name [电子邮件受保护] -setcookie KILLER

并尝试 ping 对方节点:

net_adm:ping('[电子邮件受保护]')。< /p>

您应该会收到“pong”消息。

下次使用

节点()。

查看所有可见节点。

Yes, you may even have to restart your OS - to check whether this is true, you could also simply start a node with a different name, also it is generally better to use a fully qualified name, such as:

erl -name [email protected] -setcookie KILLER

Then, start another one using:

erl -name [email protected] -setcookie KILLER

and try to ping the other node:

net_adm:ping('[email protected]').

You should get a 'pong' message.

Next use

nodes().

to see all visible nodes.

悲喜皆因你 2024-07-28 06:15:40

我认为您会发现您已经启动了一个使用该名称的节点。 尝试关闭所有 Erlang 控制台窗口,然后重试。

I think that you will find that you have started a node by that name already. Try shutting down all your Erlang console windows and try again.

深陷 2024-07-28 06:15:40
  1. 您需要确保您没有使用已经注册的名称(当然):这包括 Erlang 已经声明的任何名称。

  2. 如果您在同一台计算机上启动但在不同的用户下,请确保您的 cookie 相同。

    如果

  1. You need to make sure you are not using an already registered name (of course): this includes any name already claimed by Erlang.

  2. If you are starting on the same machine but under different user, make sure your cookies are the same.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文