Знайомство з n2o v4.4 [2]
Продовжуємо знайомство з n2o - erlang-фреймворком на вебсокетах.
Розглядаємо команди mad та otp.mk
Зараз ми розглянемо що робить команда
./mad deps compile plan repl
доречі, якщо в консолі у відповідь на цю команду пише "команду не знайдено ..." -
тицяємо наступне
sudo chmod a+x mad
повертаємось до mad -
deps — отримати залежності по rebar.config
compile — компіляція
plan — створити план запуску в .applist
repl — запустити проект
mad на github ( https://github.com/synrc/mad )
далі відредагуємо my_n2o_app/rebar.config -
додамо залежності, котрі нам незабаром знадобляться -
jsone (ймовірно нам знадобиться працювати з json )
epgsql (драйвер для роботи з postgresql )
(комміт https://github.com/221V/my_n2o_app/commit/952a56d20023a791b34031668f78b1b008d248fc )
(на всякий випадок) завантажимо всі deps-файли в репозиторій
(комміт https://github.com/221V/my_n2o_app/commit/ef069b1413e200025a101baf66753f0a68b01d45 )
напевно, нам знадобиться запуск нашого додатку в якості linux-demon, тобто на фоні, без створення ерланг-релізу
це ми можемо зробити за допомогою otp.mk ( https://github.com/synrc/otp.mk )
додамо до нашого репозиторію необхідні файли
(комміт https://github.com/221V/my_n2o_app/commit/b38bf2c5e72b03adcc30ff49375f02251dcb7162 )
Як запустити?
примітка - перед запуском ймовірно потрібно встановити
$ sudo apt-get install make
Запускаємо -
make start
make attach
CTRL + D
Як прибити запущений таким способом n2o-додаток?
приєднуємось до ерланг-ноди
make attach
далі пишемо
q().
це все :)
або ж, для нелінивих, пошук по порту -
sudo netstat -tpln | grep "tcp"
sudo kill ${pid}
upd. а так виглядає команда, якою запускається n2o додаток з otp.mk:
ERL_LIBS="apps:deps" erl +pc unicode -args_file vm.args -config sys.config -eval '[application:start(A) || A <- [public_key, kernel, stdlib, mnesia, fs, ranch, crypto, pooler, compiler, syntax_tools, inets, cowlib, ssl, cowboy, n2o, active, epgsql, epgsql_pool, erlydtl, gproc, herd, jsone, mad, nitro, rest, sh, ublog]]'
Посилання
https://github.com/synrc/mad
https://github.com/synrc/otp.mk