Windows XP Homeで-snameオプションを使用してErlangノードを起動しようとしていますが、erlを実行すると長いエラーメッセージが表示されてしまい、終了します:Windowsで名前付きErlangノードを起動できないのはなぜですか?
>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を使用してもどちらも役に立ちません。
私はerlを起動する前にすべてのcmdウィンドウを閉じようとしましたが、うまくいきませんでした。あなたが示唆したように、Windowsを再起動した後、私はerl -sname fooを実行することができました。それは私がプロセスを実行していたerlを意味し、それを知らなかった? – allyourcode
はい、erlangシェルには、シェルが提供する高度な機能を使用せずに、任意の数のプロセスが実行されている可能性があることを忘れないでください。プロセス情報が残っているため、正常に終了していませんでした。 – none