引导脚本终止并给出错误(不存在错误记录器)

时间:2011-03-25 16:35:40

标签: erlang

我制作了一个Erlang应用程序,它应该在启动操作系统时启动。引导脚本存储在/etc/init.d中。它看起来像这样:

#!/bin/sh
cd $ROOT/lib/di
INET_ADDR=$(ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
NODE_NAME=$(echo di@$INET_ADDR)
erl -pa $PWD/ebin -pa $PWD/deps/*/ebin -name $NODE_NAME -boot di $1 -setcookie agfeo

脚本尝试确定计算机的IP地址,以便为节点提供唯一的名称。机器启动时,脚本会自动执行。在终端上,我得到以下输出:

(no error logger present) error: "Error in process <0.1.0> with exit value:
{badarg,[{erlang,list_to_atom,[[<<2 bytes>>,<<5 bytes>>,46,98,111,111,116]]},
{init,get_boot,2},{init,do_boot,3}]}"
{"init terminating in do_boot",{badarg,[{erlang,list_to_atom,[[<<2 bytes>>,<<5 bytes>>,46,98,111,111,116]]},
{init,get_boot,2},{init,do_boot,3}]}}
init terminating in do_boot ()

当脚本自动加载时,这就是shell打印出来的内容。 当我手动调用脚本时,我的应用程序正常启动,没有任何问题。

有人可以解释一下,上面的错误信息意味着什么?

1 个答案:

答案 0 :(得分:2)

如果我们查看堆栈跟踪,最后执行的函数是init:get_boot/2,最后一条指令是erlang:list_to_atom([<<2 bytes>>, <<5 bytes>>, ".boot"])。在init:get_boot/2中有三行list_to_atom,因此错误应为以下之一:

  • '无法获取启动文件';
  • '引导文件格式错误';

我认为错误'无法获取启动文件'

相关问题