gpt4 book ai didi

erlang - 启动erlang代码的脚本

转载 作者:行者123 更新时间:2023-12-01 15:23:32 27 4
gpt4 key购买 nike

我正在尝试在 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

最佳答案

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

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

关于erlang - 启动erlang代码的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4429772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com