【问题标题】:script to start erlang code启动erlang代码的脚本
【发布时间】:2011-05-24 16:57:25
【问题描述】:

我正在尝试在 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)工作正常,但如果我尝试启动它的主管(-s my_module_sup start_link)而不是主模块(gen_server)它不起作用......这很奇怪,因为如果我从普通 shell 启动主管,一切正常。

第三,-heart 标志,应该在失败的情况下重新启动脚本,但是如果我用正常的 Unix kill 杀死进程,则不会重新启动进程。

谁能给我一些提示?

提前致谢,

pdn

【问题讨论】:

    标签: erlang


    【解决方案1】:

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

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

    【讨论】:

    • 你好,我猜是剪切和粘贴有问题,命令当然是erl,然后导出部分有一个新行...
    猜你喜欢
    • 2011-09-04
    • 2010-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    相关资源
    最近更新 更多