加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

无法从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).

这样你就可以了解为什么你的主管正在终止.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读