启动erlang代码的脚本

启动erlang代码的脚本,erlang,Erlang,我正试图在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 s

我正试图在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
但我有几个问题

首先,只有在脚本与beams位于同一目录下时才能执行代码,这对我来说似乎很奇怪,我仔细检查了路径,那么-pa标志为什么不起作用呢

第二,脚本(不带-pa)工作正常,但是如果我尝试启动主模块(gen_服务器)而不是它的主管(-s my_module_sup start_链接),它就不工作了……这很奇怪,因为如果我从普通shell启动主管,一切都会正常工作

第三个是-heart标志,在出现故障时应该重新启动脚本,但是如果我使用普通的Unix kill终止进程,则进程不会重新启动

有人能给我一些提示吗

提前感谢,


pdn

首先想到的是您使用的是
erlexport
而不是
erl
。不知道为什么要这样做(我以前没有听说过
erlexport
)。改用
erl
试试


如果Erlang节点本身因为进程无法保持自身活动而被杀死,则您的
-heart
标志将没有意义。您需要运行另一个进程来监视Erlang进程,并在被终止时重新启动它。

hi,剪切粘贴中出现了问题,我想,命令当然是erl,然后有一行新的导出部分。。。