启动erlang代码的脚本
我正试图在ubuntu上构建一个脚本来启动我的一些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
#!/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,然后有一行新的导出部分。。。