我正在尝试使用 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,[]]}}})
Run Code Online (Sandbox Code Playgroud)
我想包含 erl_crash.dump 文件,但我不知道这样做的好方法,因为它很长。
起初,我以为我遇到了防火墙问题,因为我第一次尝试这样做时,我的防火墙询问我是否会授予不同程序的权限,我做到了;然而,即使在禁用我的防火墙后,我仍然遇到同样的问题。
改用 -name 似乎也无济于事。
是的,您甚至可能需要重新启动操作系统 - 要检查这是否属实,您也可以简单地启动一个具有不同名称的节点,通常最好使用完全限定名称,例如:
erl -name rambo@127.0.0.1 -setcookie 杀手
然后,使用以下方法启动另一个:
erl -name terminator@127.0.0.1 -setcookie KILLER
并尝试 ping 另一个节点:
net_adm:ping('rambo@127.0.0.1')。
您应该收到“乒乓”消息。
下次使用
节点()。
查看所有可见节点。
| 归档时间: |
|
| 查看次数: |
2769 次 |
| 最近记录: |