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