Erlang application init

 
0
 
Functional languages
ava
Valinur | 07.08.2012, 15:53
Привет всем.

Написал небольшое Erlang-приложение. Для работы приложению нужно httpc, поэтому при инициализации я запускаю inets.

init([]) ->
    %% some code
    %% ...
    inets:start(),
    ssl:start(),
    io:format("~p starting~n", [?SERVER]),
    {ok, Table}.


Я считаю это неверным, и хочу чтобы inets и ssl запускались сами. Для этого прописал их в .app и убрал 2 строчки кода из init

{application, status_server,
    [{description, "HTTP Status Server"},
        {vsn, "0.1"},
        {modules, [status_server_app, status_server_supervisor, status_server]},
        {registered, [status_server, status_server_supervisor]},
        {applications, [kernel, stdlib, inets, ssl]},
        {mod, {status_server_app, []}},
        {start_phases, []}
    ]}.


init([]) ->
    %% some code
    %% ...
    io:format("~p starting~n", [?SERVER]),
    {ok, Table}.


Но теперь при запуске приложения я получаю ошибку

1> application:load(status_server), application:start(status_server).
{error,{not_started,inets}}.

В документации по OTP написано, что в части applications прописываются всё, что должно подкгрузиться до старта самого приложения. Почему же я словил эту ошибку? Или я что-то не так делаю?
Comments (2)
ava
Бонифаций | 11.08.2012, 16:37 #
Потому что вы запускаете приложение ручками.

Если вы сделаете релиз, то там будет сгенерирован бут скрипт для запуска вашего приложения, и все dependent приложения будут запускаться автоматически. Если вы просто скомпилировали проект и запускаете его из erl, то забота о том, чтобы все нужные приложения были запущены возлагается на вас самих.

added later:
и, кстати, application:start(status_server) сам, без вас сделает application:load.

ava
Valinur | 16.08.2012, 00:24 #
Понял, спасибо smile Разобрался)
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit