Запуск приложения Erlang на сервере Windows - PullRequest
4 голосов
/ 18 августа 2010

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

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

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

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

Ответы [ 3 ]

4 голосов
/ 18 августа 2010

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

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

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

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

erl -boot ch_rel-1

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

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

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

Надеюсь, это поможет. Хороший вопрос.

1 голос
/ 19 августа 2010

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

0 голосов
/ 19 августа 2010

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

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

...