我具有从命令行,即运行良好的escript文件:

./escript_file

这意味着是cron的友好和所有路径是明确的,但是当我运行它,它无法编译说,有bad attributes

所讨论的不良属性是宏定义:

-define(COOKIE, 'somecookie').

<强>应答

感谢杰夫准备的建议,我调查了二郎神的版本运行打印出打印出像init:script_id()一个字符串,果然在命令行和cron版本中拿起不同的版本{"OPT APN 181 O1", "R13B"}

在脚本有一个初始行:

#!/usr/bin/env escript

和所述操作系统是“发现”二郎我。 cron的不同环境变量意味着不同的Erlang正在回升(杰夫的第一个答案,而一个我有点知道,但无法看到它会如何影响的东西)。

然后将溶液以迫使版本的起始行:

#!/usr/local/lib/erlang/erts-5.7.3/bin/escript

<强>后记

还有一个不同的Ubuntu apt-get安装的二郎的早期版本(在不同的位置到源安装)和一个错误的64位安装...

在cron的环境只是不停地回落到老年人和更晦涩安装,所有失败的同时:(

有帮助吗?

解决方案

也许cron是在路径拾取不同版本的Erlang。 二郎R12B文档说escript忽略预处理除了include_lib指令。 二郎R13B文档说,预处理器的文件运行。这肯定会解释行为的差异。

其他提示

如果它是在命令行中工作正常,一个可能的原因是你的交互shell时的cron运行脚本与环境变量的差异。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top