2

我们有一个具有不同进程的项目,并通过调用来运行它erl -pa ebinmymodule_supervisor:start_link().

我们在 Amazon EC2 上设置了一个 ubuntu 实例。作为新手,我们如何远程运行项目,以便我们可以关闭连接并且项目将继续运行?

我们可以在后台运行 Erlang shell,但我们的项目不能在它上面运行。看到一个例子就完美了。

4

1 回答 1

5

方法 1:您可以从您的代码构建一个发布包。如果操作正确,这将在一个易于分发的 tar 文件中嵌入一个完整的 Erlang 系统(以及您的应用程序及其依赖项)。使用自动生成的脚本,节点可以作为守护进程启动,即使在您关闭 shell 后也会在后台运行。

一个很好的入门方法是使用Rebar,它已经支持开箱即用的发布处理。

方法 2:使用 tmux 或 screen(两者都可以轻松安装在 Ubuntu 上)启动节点并分离会话。如果您选择 tmux,以下应该可以工作:

  1. tmux只需从 shell运行即可启动 tmux 。
  2. 在 tmux 中,erl像以前一样使用命令启动您的节点。
  3. Ctrl-b使用后跟分离您的会话d。退出你的外壳。该节点应该仍在运行。

启动supervisor的“正确”方式是start_linkstart你的Erlang应用程序的函数中调用它的函数。

于 2012-11-26T21:01:48.483 回答