2

さまざまなプロセスを持つプロジェクトがあり、、を呼び出して実行しますerl -pa ebinmymodule_supervisor:start_link().

AmazonEC2にubuntuインスタンスを設定しました。これに慣れていないので、プロジェクトをリモートで実行して、接続を閉じてもプロジェクトを実行し続けるにはどうすればよいでしょうか。

Erlangシェルをバックグラウンドで実行することはできますが、プロジェクトを実行することはできません。例を見るのは完璧でしょう。

4

1 に答える 1

5

方法1:コードからリリースパッケージをビルドできます。正しく行われると、これにより、完全なErlangシステムが(アプリケーションとその依存関係とともに)簡単に配布できるtarファイルに埋め込まれます。自動生成されたスクリプトを使用すると、ノードをデーモンとして起動し、シェルを閉じた後でもバックグラウンドで実行できます。

開始するための良い方法は、Rebarを使用することです。これは、すぐに使用できるリリース処理をすでにサポートしています。

方法2: tmuxまたはscreen(どちらもUbuntuに簡単にインストールできます)を使用してノードを起動し、セッションをデタッチします。tmuxを選択した場合、以下が機能するはずです。

  1. tmuxシェルから実行するだけでtmuxを起動します。
  2. tmux内から、erl前と同じようにコマンドを使用してノードを起動します。
  3. Ctrl-b続いて。を使用してセッションを切り離しますd。シェルを終了します。ノードはまだ実行されているはずです。

スーパーバイザーを起動する「適切な」方法は、Erlangアプリケーションstart_linkの関数内からその関数を呼び出すことです。start

于 2012-11-26T21:01:48.483 に答える