无法从shell生成erlang管理程序
发布时间:2020-12-15 21:02:41 所属栏目:安全 来源:网络整理
导读:我已经实现了gen_server和supervisor:test_server和test_sup.我想从 shell / CLI测试它们.我写了他们的start_link函数,以便他们的名字在本地注册. 我发现我可以从命令行生成test_server,但是生成的test_sup根本不允许我与服务器进行交互. 例如,我可以通过执
我已经实现了gen_server和supervisor:test_server和test_sup.我想从
shell / CLI测试它们.我写了他们的start_link函数,以便他们的名字在本地注册.
我发现我可以从命令行生成test_server,但是生成的test_sup根本不允许我与服务器进行交互. 例如,我可以通过执行以下命令生成test_server: 1> spawn(test_server,start_link,[]). <0.39.0> 2> registered(). [...,test_server,...] 我可以与服务器进行交互,一切都很好. 但是,如果我尝试使用test_sup执行相同的操作,则在我的“CLI进程”中没有注册新的名称/ Pids(使用registered / 0).我的test_server似乎已经产生了,但是我无法与它进行交互(参见Lukas Larsson关于SASL的评论,看看为什么这是真的). 我假设我在我的主管中编写了一个错误,但这种启动我的主管的方法完全正常: 1> {ok,Pid}= test_sup:start_link([]). {ok,<0.39.0>} 2> unlink(Pid). true 3> registered(). [...,test_sup,...] 为什么我可以产生gen_server但不能产生主管? 更新 我正在使用的代码可以在this post中找到.我正在使用echo_server和echo_sup这两个非常简单的模块. 鉴于该代码,这工作: spawn(echo_server,[]). 这不是: spawn(echo_sup,[]). 解决方法
每当试图解决这些问题时,打开SASL通常都非常有帮助.
应用程序:启动(SASL). 这样你就可以了解为什么你的主管正在终止. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |