さまざまなプロセスを持つプロジェクトがあり、、を呼び出して実行しますerl -pa ebin
。mymodule_supervisor:start_link().
AmazonEC2にubuntuインスタンスを設定しました。これに慣れていないので、プロジェクトをリモートで実行して、接続を閉じてもプロジェクトを実行し続けるにはどうすればよいでしょうか。
Erlangシェルをバックグラウンドで実行することはできますが、プロジェクトを実行することはできません。例を見るのは完璧でしょう。
さまざまなプロセスを持つプロジェクトがあり、、を呼び出して実行しますerl -pa ebin
。mymodule_supervisor:start_link().
AmazonEC2にubuntuインスタンスを設定しました。これに慣れていないので、プロジェクトをリモートで実行して、接続を閉じてもプロジェクトを実行し続けるにはどうすればよいでしょうか。
Erlangシェルをバックグラウンドで実行することはできますが、プロジェクトを実行することはできません。例を見るのは完璧でしょう。
方法1:コードからリリースパッケージをビルドできます。正しく行われると、これにより、完全なErlangシステムが(アプリケーションとその依存関係とともに)簡単に配布できるtarファイルに埋め込まれます。自動生成されたスクリプトを使用すると、ノードをデーモンとして起動し、シェルを閉じた後でもバックグラウンドで実行できます。
開始するための良い方法は、Rebarを使用することです。これは、すぐに使用できるリリース処理をすでにサポートしています。
方法2: tmuxまたはscreen(どちらもUbuntuに簡単にインストールできます)を使用してノードを起動し、セッションをデタッチします。tmuxを選択した場合、以下が機能するはずです。
tmux
シェルから実行するだけでtmuxを起動します。erl
前と同じようにコマンドを使用してノードを起動します。Ctrl-b
続いて。を使用してセッションを切り離しますd
。シェルを終了します。ノードはまだ実行されているはずです。スーパーバイザーを起動する「適切な」方法は、Erlangアプリケーションstart_link
の関数内からその関数を呼び出すことです。start