erlang - 运行 erlang 应用程序,无需依赖终端

标签 erlang terminal

我有 erlang 应用程序:*.app 文件和一些 *.erl 文件。我把它们全部编译出来。在终端中,我启动 erl 并出现 application:start(my_application).,一切正常,但如果我关闭终端应用程序,也会关闭。如何在不依赖终端的情况下运行应用程序?

谢谢。

最佳答案

您可能希望对 erl 使用 -noshell 选项。语法是

erl -noshell -s Module Function Arguments

所以在你的情况下,这可能是

erl -noshell -s application start my_application

这应该允许您(例如,如果您在 Unix/Linux 上)将应用程序作为后台进程启动并保持运行。

一个有用的变体是还调用 init 模块的 stop/0 函数,以便 Erlang 环境在完成运行您的函数后停止。如果您想运行一个简单的一次性函数并将输出通过管道传输到其他进程,这会派上用场。

例如,要通过管道传输到more,您可以这样做

erl -noshell -s mymodule myfunction -s init stop | more

最后,如果适合您的情况,您还可以使用 escript 命令将 Erlang 代码作为脚本运行,而不是编译代码。

希望有帮助。

关于erlang - 运行 erlang 应用程序,无需依赖终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5269300/

相关文章:

erlang - Erlang 是否适用于任何非 x86 处理器?

linux - 如何获取与预推 git Hook 中的原始文件不同的所有文件的列表

linux - 如何查找并显示文本文件中的所有信息

C 客户端/服务器问题

ruby - Byebug 终端输出不一致且有错误

vim - Ubuntu、Vim 和曝光调色板

java - 将 Erlang UTF-8 编码的字符串转换为 java.lang.String

sockets - 编写平台无关的基于 Socket 的二进制解析代码

erlang - 以原子方式替换关联的 pid(即注销和注册)

database - 为 Couch Base Server 1.8 和 2.0 构建 Erlang 客户端