我们正在运行一个 erlang 程序(ejabberd)。有时,我们需要通过将 erl shell 连接到这个正在运行的 erlang 程序来进行健康检查。
我正在尝试编写所有这些脚本,而不是erl -sname r -remsh ....
在 erlang shell 中键入然后我的命令,我正在寻找直接从我的 bash shell 执行该命令并获取输出的方法。这可能吗?
在 Odobenus 的回答之后,我写了这个小脚本:
#!/usr/bin/env escript
%%! -sname r -setcookie `cat ~ejabberd/.erlang.cookie`
main([]) ->
Res = rpc:call(ejabberd@xmpp,mnesia,info,[]),
io:format("~p~n",[Res]).
问题是我得到一个“节点关闭”错误,即使这些是我用来连接的完全相同的参数erl
:erl -sname r -remsh ejabberd@xmpp -setcookie `cat ~ejabberd/.erlang.cookie`