Загрузочный скрипт завершается и выдает ошибку (нет регистратора ошибок) - PullRequest
3 голосов
/ 25 марта 2011

Я сделал приложение 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 ()

Это то, что печатает оболочка, когда скрипт загружается автоматически.Когда я вызываю скрипт вручную, мое приложение запускается нормально, без каких-либо проблем.

Может кто-нибудь объяснить, что означает сообщение об ошибке выше?

1 Ответ

2 голосов
/ 25 марта 2011

Если мы посмотрим на трассировку стека, последняя выполненная функция будет init: get_boot / 2 , а последняя инструкция - erlang:list_to_atom([<<2 bytes>>, <<5 bytes>>, ".boot"])init:get_boot/2 есть три строки с list_to_atom, поэтому ошибка должна быть одной из следующих:

  • 'не может получить загрузочный файл' ;
  • ' ошибка формата загрузочного файла' ;

Я считаю, что ошибка 'не удается получить загрузочный файл' .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...