问题标签 [erlang-escript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - 使用 SSL 分发运行 Erlang Escript 文件
我有一个小的 escript 文件,它连接到一个节点并执行一些 rpc 调用和一些东西......
它适用于短名称或长名称,但依赖于分布式 Erlang 的标准 http 通信。
我想使用它,但使用 https/SSL 进行分发。
要使用 SSL 启动“普通”Erlang 系统,您必须传入各种标志来告诉 Erlang 以这种方式运行,如文档所示:
这将默认分发机制 ( inet_tcp_dist
) 替换为 ssl机制 ( inet_ssl_dist
)。
escript将 erlang 文件作为 shell 脚本文件运行。
我的问题是:
- 是否有可能获得运行 escript 以使用安全分发机制而不是默认机制的 Erlang“环境”?
- 如果是这样,我该怎么做?
cron - escript cron 蓝调
我有一个从命令行运行良好的 escript 文件,即:
它意味着对 cron 友好,并且所有路径都是明确的,但是当我运行它时,它无法编译说有bad attributes
.
有问题的坏属性是宏定义:
答案
感谢 Geoff Ready 的建议,我通过打印出哪个版本的 Erlang 来调查正在运行的 Erlang,init:script_id()
它打印出类似的字符串,{"OPT APN 181 O1", "R13B"}
并且果然命令行和 cron 版本正在选择不同的版本。
该脚本有一个初始行:
操作系统正在为我“寻找”Erlang。cron 的不同环境变量意味着正在选择不同的 erlang(Geoff 的第一个答案,我有点知道但看不出它会如何影响事情)。
然后解决方案是强制版本具有以下起始行:
后记
还有一个不同的 Ubuntuapt-get
安装了早期版本的 Erlang(在与源安装不同的位置)和一个错误的 64 位安装......
cron 环境只是不断退回到较旧且更晦涩的安装,一直失败:(
erlang - Erlang 脚本参数
我真的不明白命令行参数如何与 escripts 一起使用。从手册页中,我了解到参数作为字符串列表传递给 main/1。如何解析传递给 main 的参数?
考虑以下:
一个简单的测试,只需一个参数,一切看起来都很好。
如果我传入多个参数怎么办?
那不是我想要的。我尝试在空格字符上拆分字符串:
产量长度:1
erlang - 使用erlang escript的ejabberd extauth
我在我的一个项目中使用 ejabberd,该项目本身是用 erlang 实现的。我有兴趣获得对身份验证流程的访问权限,这样我就可以集成我的用户数据库,而无需在 ejabberd 中单独注册它们。
我已经得到了这里描述的大部分内容: https ://git.process-one.net/ejabberd/mainline/blobs/raw/2.1.x/doc/dev.html#htoc8
但是,看似 ejabberd 从未收到我的 escript 的响应。下面是负责发送响应的部分代码:
从我的日志中我最终发送:
这与我以前在 PHP 中所做的完全相似:
我不确定我在哪里搞砸了。
如果有更好的方法来集成我的用户数据库,我也很感兴趣,因为我的应用程序本身就在 erlang 中,我可能想利用 erlang 消息传递而不是在 extauth 中读取/写入 stdin/stdout
erlang - Escript:设置相对于脚本目录的代码路径
当我尝试使用 -pz 像这样在 escript 中设置相对代码路径时
该路径是相对于我从中运行 escript 的目录进行解释的,这使得它对于设置相对于脚本位置的路径毫无用处。
我当前的“解决方法”是使用令人讨厌的绝对路径,因为所有这些都是存储库的一部分,我不希望它依赖于位置。
那么如何设置相对于 escript 所在目录的代码路径呢?
erlang - 如何启动 Erlang OTP 应用程序并允许将命令行参数传递给应用程序的根主管?
Quick 1 liner:如何启动 OTP 应用程序并将命令行参数传递给它?
我希望能够以通用的“UNIX”方式启动 OTP 应用程序,能够传递由 getopts 解析的命令行参数。所以,我有一个 erlang escript,它使用getopt库来处理命令行参数的解析。
shino 的回答让我走上了正确的道路:
- 我有我的 escript 做 getopts 解析
- 然后,escript 使用 application:load/1 将应用程序描述加载到内存中
- 然后我使用 application:set_env/3 来存储 CLI args
- 现在,使用 application:start/2 启动应用程序
- 应用程序启动后,可以通过 application:get_env/2 访问参数
erlang - 为什么escript不能运行?
rebar 在当前目录中。
我正在使用 FreeBSD 9.0。
谢谢!
erlang - 使用 Erlang etop 将信息转储到文件中?
使用 Erlang etop 将 Erlang 程序信息转储到文件的命令行选项是什么?如果这不能在命令行中完成,可以在 escript 中完成吗?
erlang - Can't send anything to spawned Erlang process
I have the following Erlang code:
I run this with:
excript rmq.erl
This code doesn't work. Looks like spawn doesn't work.
Rest of my code works, function send and validate works correctly if I run it from main (I've commented its). What I'm doing wrong?
Sorry, maybe it's a dumb question but I'm a beginner with erlang. I've tried search answer in internet and books and I failed...
erlang - Erlang beam_lib 块坏了?
我试图反编译 .beam 文件(从长生不老药代码编译)
我用了这个脚本
其中生成了一个文件。但是在再次编译此代码时,我在“-spec”注释上遇到错误
代码不变。它与新的 Erlang 版本有关还是我做错了什么?