Я задал вопрос ранее о получении exrm работает для моего проекта. Ответ привел меня к тому, что я могу собрать свой релиз (в режиме разработки) и получить к нему доступ через консоль.
Однако есть пара проблем:
Когда я открываю консоль через
rel/my_app/bin/my_app console
, мое приложение фактически не запускается. Я должен позвонитьApplication.start(:my_app)
, чтобы начать.Вызов
rel/my_app/bin/my_app start
не запускает мое приложение. Я вижу, что процессы epmd, beam.smp и run_erl запущены, но мое собственное приложение не работает.
Почти уверен, что эти две проблемы связаны.
Действия, предпринятые для консоли:
$ mix release --dev
$ ./rel/my_app/bin/my_app console
iex([email protected])1> Application.start(:my_app)
# at this point the app is running until I ctrl+c
Шаги, предпринятые для запуска:
$ mix release --dev
$ ./rel/my_app/bin/my_app start
$ ps aux | grep "my_app"
12235 0.0 0.0 2460212 636 ?? S 11:10am 0:00.19 /Users/me/code/my_app/rel/my_app/erts-6.3.1/bin/epmd -daemon
17565 0.0 0.2 2524256 26236 s008 Ss+ 4:03pm 0:00.37 /Users/me/code/my_app/rel/my_app/erts-6.3.1/bin/beam.smp -- -root /Users/me/code/my_app/rel/my_app -progname Users/me/code/my_app/rel/my_app/bin/my_app -- -home /Users/me -- -boot /Users/me/code/my_app/rel/my_app/releases/0.0.1/my_app -boot_var ERTS_LIB_DIR /Users/me/code/my_app/rel/my_app/erts-6.3.1/../lib -config /Users/me/code/my_app/rel/my_app/releases/0.0.1/sys.config -pa /Users/me/code/my_app/rel/my_app/lib/consolidated -name [email protected] -setcookie my_app -user Elixir.IEx.CLI -extra --no-halt +iex -- console
17562 0.0 0.0 2452008 588 ?? S 4:03pm 0:00.00 /Users/me/code/my_app/rel/my_app/erts-6.3.1/bin/run_erl -daemon /Users/me/code/my_app/rel/my_app/tmp/erl_pipes/my_app/ /Users/me/code/my_app/rel/my_app/log exec "/Users/me/code/my_app/rel/my_app/bin/my_app" "console"
$ tail /var/log/system.log
Jun 9 16:03:14 me.local my_app[17565][17597]: Starting up
Я могу сказать, что мое приложение не работает, потому что оно должно потреблять из очереди и записывать в хранилище данных. Однако при запуске выпуска очередь никогда не используется. К сожалению, я не могу найти больше выходных данных журнала или ошибок, кроме одной строки «Запуск».
Есть ли аргумент, который мне нужно передать команде запуска exrm, чтобы запустить мое приложение?
Если нет, возможно, есть способ отладить это, указав куда-нибудь журналы или проверив внутренние процессы?