【发布时间】:2021-03-18 03:22:42
【问题描述】:
我是 Erlang 初学者,正在学习 OTP。
我在运行时尝试与主管交谈时收到noproc 错误。事实上,那个主管的start_link(由我实现,而不是主管:start_link())似乎没有被执行,因为它第一行的io:fwrite甚至没有被输出。
原来问题是主管的一个孩子缺少一些gen_server 回调函数(应用程序没有使用这些函数)。编译器记录了一个警告,就是这样,当我启动应用程序时没有错误。我不确定发生了什么,但不应该有一些错误指示发生吗?
如果它很重要,这就是主管本身的子规范的样子:
ElementSup = {sc_element_sup,
{sc_element_sup, start_link, []},
permanent, 2000, supervisor, [sc_element]},
【问题讨论】:
-
你是怎么编译的?
-
使用
$ erlc -o ebin src/*erl,来源是github.com/erlware/Erlang-and-OTP-in-Action-Source/blob/master/…处的应用程序,我省略了最后四个回调函数。