Я пытаюсь создать скрипт на Ubuntu, чтобы запустить мой Erlang-код:
скрипт выглядит примерно так:
#!/bin/sh
EBIN=$HOME/path_to_beams
ERL=/usr/local/bin/erl
export HEART_COMMAND="$EBIN/starting_script start"
case $1 in
start)
$ERL -sname mynode -pa $EBIN \
-heart -detached -s my_module start_link
;;
*)
echo "Usage: $0 {start|stop|debug}"
exit 1
esac
exit 0
, но у меня возникла пара проблем.
Прежде всего, код может быть выполнен только в том случае, если скрипт находится в той же директории, что и лучи, мне это странно, я дважды проверил пути, так почему же флаг -pa не установленработать?
Во-вторых, скрипт (без -pa) работает нормально, но если я попытаюсь запустить вместо основного модуля (gen_server) его супервизор (-s my_module_sup start_link), он не будет работать...это странно, потому что, если я запускаю супервизор из обычной оболочки, все работает нормально.
В-третьих, флаг -heart должен перезапустить сценарий в случае сбоя, но если я завершу процесс с помощьюобычный Unix kill, процесс не перезапускается.
Может кто-нибудь дать мне несколько советов?
Заранее спасибо,
pdn