Я обнаружил, что если я сделаю следующее, все будет работать так, как ожидалось:
$ iex --sname console --remsh eprocess@service
eprocess@service)1> MyModule.process()
Однако MyModule
недоступен, если я попытаюсь:
$ iex --sname console --remsh eprocess@$HOSTNAME -e "MyModule.process()"
Ошибка:
** (UndefinedFunctionError) функция MyModule.process/0 не определена (модуль MyModule недоступен)
Кто-нибудь знает, как включить зависимости от микса при использовании флага -e
?
-e "(alias MyModule; MyModule.process())"
Обратите внимание, что из-за того, как оцениваются несколько выражений, вам нужно добавить круглые скобки вокруг выражения. - person Onorio Catenacci   schedule 21.03.2018-S
указывает сценарий для запуска. У вас должна быть возможность создать сценарий, напримерrunmyprocess.exs
, а затем добавить-S runmyprocess
в конец вашей командной строки. - person Onorio Catenacci   schedule 21.03.2018-pa */ebin
для каждой имеющейся у меня зависимости. Однако вызов, который я хочу сделать, зависит от БД, поэтому он говорит, что репо не запущено. Я вручную вызываю Mix.Ecto.ensure_started(Repo), но теперь пишет, что конфиги не указаны. Я действительно не знаю, что делать... - person Olshansk   schedule 24.03.2018iex --sname console --remsh eprocess@$HOSTNAME -e "IO.inspect(Application.get_env(:a, :b))"
-> результат: niliex --sname console --remsh eprocess@$HOSTNAME
iex> IO.inspect(Application.get_env(:a, :b)
-> результат: не nil Похоже, команда, которую мы передаем -e, не имеет доступа к контексту приложения, но оболочка, которая запускается после этого, имеет доступ. - person Olshansk   schedule 24.03.2018