4

アプリケーションを起動し、(子) ワーカーをスーパーバイザーに追加するプログラムがあります。明らかに、それだけを実行した後は、何もする必要がなく、停止 (終了) します。したがって、VM を停止しないようにすると、ワーカーが動作できるようになります。

私が思いついた唯一の解決策は、追加することでした:

IO.gets "Working... To finish hit <Enter>."

最後に...

escript次のように、実行後に Erlang VM を停止しないものを構築したいと思います。

elixir --no-halt -S mix run --eval 'MyApp.CLI.m
ain(["some-arg"])'

また

mix run --no-halt --eval 'MyApp.CLI.m
ain(["some-arg1,some-arg2"])'

escriptでこれを行う方法はありますか?

または、実際にはコマンド ライン ツールというよりもサーバー/デーモンに近いプログラムをパックして配布する別のソリューションを使用する必要がありますか?

4

2 に答える 2

6

このようなシステムをパッケージ化する典型的なアプローチは、OTP リリースです。そのためにexrmを使用できます。

何らかの理由でまだ escript を使用したい場合は、:timer.sleep(:infinity)すべてのアプリケーションとプロセスを開始した後に呼び出すことができます。

于 2015-05-06T11:17:21.270 に答える