Запуск приложения Erlang на сервере Windows


У меня есть приложение Erlang, развернутое на сервере с Windows Server 2008.

Как я это делаю:

  1. скопируйте папку приложения в каталог Erlanglib .
  2. Откройте командную строку (cmd). Выполнить erl .
  3. выполнить приложение:start(app_name) в оболочке Erlang.

Есть ли более эффективные подходы для запуска приложения? Как сделать так, чтобы приложение запускалось при запуске Windows?

3 4

3 ответа:

У меня нет опыта работы с Windows, но...

`1. Прежде всего, вы можете взглянуть на концепцию release в Erlang. По существу,

Когда мы написали одно или несколько приложений, мы можем захотеть создать полную систему, состоящую из этих приложений и подмножества приложений Erlang/OTP. Это называется освобождением.

`2. Затем вы можете создать скрипт, содержащий что-то вроде:

erl -boot ch_rel-1

Где по сути, вы запускаете Erlang/OTP с помощью сценария загрузки, созданного выше (просто следуйте инструкциям на странице releases)

`3. В этой статье объясняется, как создать сценарии запуска в Windows Server 2008 (не тестировался, просто погуглил):

Http://technet.microsoft.com/en-us/magazine/dd630947.aspx

Надеюсь, это поможет. Щекотливый вопрос.

Возможно, арматура может помочь. Это делает построение скелета приложения и выпуск довольно простым. Хороший учебник здесь .

После ознакомления с релизами, взгляните на страницы руководства (erl-man) для start_erl и erlsrv. Я использовал их для запуска встроенной системы (http://www.erlang.org/doc/embedded/embedded_nt.html ) в windows 2003, надеюсь, что он все еще работает для вас в windows 2008. После создания сервиса с помощью erlsrv можно управлять им с помощью стандартных инструментов командной строки и графического интерфейса windows, например, устанавливая режим запуска и политику перезапуска.

Может быть, вы могли бы начать только ваше приложение с поставляя "- s app_name " в качестве дополнительного флага erl/start_erl, но я не пытался этого сделать, так как мне пришлось пройти долгий путь со встроенным системным релизом. В этом случае убедитесь, что у вас есть " start () - > application: start (?МОДУЛЬ)."в вашем" имени приложения.Эрл".