0

問題 : 次のように noshell コマンドを実行し、ポート 6657 でサーバーを維持しようとしていますが、うまくいかないようです。

run_server.sh

erl -make
erl -pa ebin/ -noshell -s server main 6657 -s init stop

Erlang モジュール関数

main(Port) ->
    controller:start(),

参考までに、erlang プロンプトでコマンドを実行できます。これは正常server:main(6667) に動作します。

そのコマンドで何を変更する必要があるか教えてください。

ありがとうございます !

4

1 に答える 1

1

モジュール名が正しいと仮定すると(server最初のスニペットchat_server以降で言う)、問題はおそらく-s module function arg1 [...]引数をアトムのリストとして送信することですが、コードには単一の整数が必要です(あなたが言ったようにserver:main(6657))。-eval代わりに使用できます-s

erl -pa ebin/ -noshell -eval "server:main(6657)" -s init stop
$ cat a.erl
-module(a).
-compile(export_all).

main(Port) ->
  io:format("~p~n", [Port]).
$ erlc a.erl
$ erl -noshell -pa . -s a main 6657 -s init stop
['6657']
$ erl -noshell -pa . -eval 'a:main(6657)' -s init stop
6657
于 2016-10-21T20:46:58.247 に答える