Erlang VM -s 参数导致我的程序失败
Erlang VM -s Argument is causing my program to fail
我已阅读此处的主题:Erlang VM -s argument misbehaving 并进行了故障排除,但无济于事。
当我 运行 没有 -s 标志的 erlang 虚拟机时,我的函数工作:
bridge_sup:start_link().
Bridge Supervisor Initializing
[warning] ClientId is NULL!
[warning] ClientId is NULL!
Success
Success
但是,如果我设置了 -s 标志,当我的函数继续调用另一个函数时 emqttc:start_link(...) 它永远不会 returns:
Bridge Supervisor Initializing
[warning] ClientId is NULL!
[warning] ClientId is NULL!
我可以确认这不仅仅是打印问题,因为我连接的程序没有接收到信号。
在 Erlang VM 中可能是什么原因造成的?我也尝试过使用 eval 达到同样的效果。这是 ./运行 代码:
erl -pa ebin -pa deps/*/ebin
提前致谢!
可能是启动顺序问题。使用 -s(或 -运行 或 -eval)将命令指定为 运行 意味着它启动得非常快,而系统的某些部分可能仍在后台启动。尝试在你的函数开始时添加一个睡眠,看看它是否改变了什么。在那种情况下,请尝试找出取决于顺序的内容。
我使用的是 Erlang 版本 19.2。我不确定这是此版本中的错误,还是启动程序的要求,但我添加了一个 .app.src 文件并添加了“-eval 'application:start(myprog)'”,程序现在将开始!
请注意,它不是以 -s、-eval 或任何没有 app.src 文件且没有 application:start
开头的
我已阅读此处的主题:Erlang VM -s argument misbehaving 并进行了故障排除,但无济于事。
当我 运行 没有 -s 标志的 erlang 虚拟机时,我的函数工作:
bridge_sup:start_link().
Bridge Supervisor Initializing
[warning] ClientId is NULL!
[warning] ClientId is NULL!
Success
Success
但是,如果我设置了 -s 标志,当我的函数继续调用另一个函数时 emqttc:start_link(...) 它永远不会 returns:
Bridge Supervisor Initializing
[warning] ClientId is NULL!
[warning] ClientId is NULL!
我可以确认这不仅仅是打印问题,因为我连接的程序没有接收到信号。
在 Erlang VM 中可能是什么原因造成的?我也尝试过使用 eval 达到同样的效果。这是 ./运行 代码:
erl -pa ebin -pa deps/*/ebin
提前致谢!
可能是启动顺序问题。使用 -s(或 -运行 或 -eval)将命令指定为 运行 意味着它启动得非常快,而系统的某些部分可能仍在后台启动。尝试在你的函数开始时添加一个睡眠,看看它是否改变了什么。在那种情况下,请尝试找出取决于顺序的内容。
我使用的是 Erlang 版本 19.2。我不确定这是此版本中的错误,还是启动程序的要求,但我添加了一个 .app.src 文件并添加了“-eval 'application:start(myprog)'”,程序现在将开始!
请注意,它不是以 -s、-eval 或任何没有 app.src 文件且没有 application:start
开头的