Почему я не могу запустить именованный узел Erlang в Windows? - PullRequest
3 голосов
/ 26 мая 2009

Я пытаюсь запустить именованный узел Erlang, используя опцию -sname в Windows XP Home, но когда я запускаю 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,kerne
l,{shutdown,{kernel,start,[normal,[]]}}})

Я бы хотел включить файл erl_crash.dump, но я не знаю, как это сделать, потому что он довольно длинный.

Сначала я думал, что у меня проблема с брандмауэром, потому что в первый раз, когда я пытался это сделать, мой брандмауэр спросил, предоставлю ли я разрешение другим программам, что я и сделал; однако, даже после отключения моего брандмауэра, у меня все еще остается та же проблема.

Использование -name вместо этого, похоже, тоже не помогает.

Ответы [ 3 ]

4 голосов
/ 26 мая 2009

Да, вам, возможно, даже придется перезапустить вашу ОС - чтобы проверить, так ли это, вы также можете просто запустить узел с другим именем, также обычно лучше использовать полное имя, например: *

erl -name rambo@127.0.0.1 -setcookie KILLER

Затем запустите еще один, используя:

erl -name terminator@127.0.0.1 -setcookie KILLER

и попробуйте пропинговать другой узел:

net_adm:. Пинг ('rambo@127.0.0.1' )

Вы должны получить сообщение 'pong'.

Следующее использование

узлы ().

чтобы увидеть все видимые узлы.

2 голосов
/ 21 сентября 2009
  1. Вы должны убедиться, что вы не используете уже зарегистрированное имя (конечно): сюда входит любое имя, уже заявленное Erlang.

  2. Если вы запускаете на том же компьютере, но под другим пользователем, убедитесь, что ваши куки совпадают.

2 голосов
/ 26 мая 2009

Я думаю, вы обнаружите, что вы уже запустили узел с таким именем. Попробуйте закрыть все окна консоли Erlang и попробуйте снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...