私たちはerlangプログラム(ejabberd)を実行しています。時には、erlangプログラムをerlangシェルに接続してヘルスチェックを行う必要があります。erlにコマンドを渡しますか?
erl -sname r -remsh ....
と入力するのではなく、erlangシェルでmyコマンドを入力するのではなく、bashシェルからコマンドを直接実行して出力を取得する方法を探しています。これは可能ですか?
#!/usr/bin/env escript
%%! -sname r -setcookie `cat ~ejabberd/.erlang.cookie`
main([]) ->
Res = rpc:call([email protected],mnesia,info,[]),
io:format("~p~n",[Res]).
問題は、私はこれらは私がerl
との接続に使用するまったく同じのparamsがあるにもかかわらず、「ノード停止」エラーが出るということです::erl -sname r -remsh [email protected] -setcookie `cat ~ejabberd/.erlang.cookie`
残念ながら、私は '{badrpc、nodedown}'を取得します。私がerlに接続するとき、事はthaatです。私はremshを使用します。これはescriptではできないようです。何か案が? –
nodedownはあなたのサーバーをエスケープしないことを意味します。あなたは同じクッキーを設定しましたか? –
Dang、私の 'cat〜ejabberd/.erlang.cookie'はthge %%行で失敗します。手動でそれを入力すると、その問題は解決しました...しかし、それを避けるのがよいでしょう。どんな手掛かり? –