Je suis en train de commencer un noeud Erlang nommé en utilisant l'option -sname dans Windows XP Home, mais quand je lance ERL, il imprime un long message d'erreur, que je ne comprends pas, et se ferme:Pourquoi ne puis-je pas démarrer un noeud Erlang nommé dans Windows?
>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,[]]}}})
Je voudrais inclure le fichier erl_crash.dump, mais je ne connais pas un bon moyen de le faire, car c'est assez long. Au début, je pensais avoir un problème de pare-feu, parce que la première fois que j'ai essayé de le faire, mon pare-feu a demandé si j'autoriserais différents programmes, ce que j'ai fait; Cependant, même après avoir désactivé mon pare-feu, j'ai toujours le même problème. En revanche, l'utilisation de -name ne semble pas aider non plus.
J'ai essayé de fermer toutes mes fenêtres cmd avant de démarrer erl, mais cela n'a pas fonctionné. Après avoir redémarré Windows, comme vous l'avez suggéré, j'ai pu lancer erl -sname foo. Cela signifie-t-il que j'avais des processus erl en cours d'exécution et que je ne le savais même pas? – allyourcode
Oui, n'oubliez pas qu'un shell erlang peut avoir un nombre arbitraire de processus en cours d'exécution, sans utiliser les fonctionnalités avancées fournies par le shell, il peut ne pas être évident ce qui est/était déjà en cours d'exécution ou si l'un de ces processus n'a pas été terminé correctement, de sorte qu'il existe des restes d'informations de processus. – none