我们有一个具有不同进程的项目,并通过调用来运行它erl -pa ebin
,mymodule_supervisor:start_link().
我们在 Amazon EC2 上设置了一个 ubuntu 实例。作为新手,我们如何远程运行项目,以便我们可以关闭连接并且项目将继续运行?
我们可以在后台运行 Erlang shell,但我们的项目不能在它上面运行。看到一个例子就完美了。
我们有一个具有不同进程的项目,并通过调用来运行它erl -pa ebin
,mymodule_supervisor:start_link().
我们在 Amazon EC2 上设置了一个 ubuntu 实例。作为新手,我们如何远程运行项目,以便我们可以关闭连接并且项目将继续运行?
我们可以在后台运行 Erlang shell,但我们的项目不能在它上面运行。看到一个例子就完美了。
方法 1:您可以从您的代码构建一个发布包。如果操作正确,这将在一个易于分发的 tar 文件中嵌入一个完整的 Erlang 系统(以及您的应用程序及其依赖项)。使用自动生成的脚本,节点可以作为守护进程启动,即使在您关闭 shell 后也会在后台运行。
一个很好的入门方法是使用Rebar,它已经支持开箱即用的发布处理。
方法 2:使用 tmux 或 screen(两者都可以轻松安装在 Ubuntu 上)启动节点并分离会话。如果您选择 tmux,以下应该可以工作:
tmux
只需从 shell运行即可启动 tmux 。erl
像以前一样使用命令启动您的节点。Ctrl-b
使用后跟分离您的会话d
。退出你的外壳。该节点应该仍在运行。启动supervisor的“正确”方式是start_link
从start
你的Erlang应用程序的函数中调用它的函数。