我正在使用Nagios来监控我的服务器,我想通过NRPE在服务器上运行一个escript文件 . 所以我必须使用CHECK_NRPE方法来调用escript,这是一个Erlang脚本文件 . 这是我的escript文件:

#!/usr/bin/env escript

main(_) ->
    io:format("test\n"), 
    halt(1).

当escript文件在服务器上运行时,其结果是OK:

测试

但是当我使用下面的命令调用escript文件时:

check_nrpe -H localhost -c check_test

我还在nrpe.cfg中定义命令,如下所示:

command [check_test] = / usr / local / nagios / libexec / check_test

现在,结果转向:

NRPE:无法读取输出

我怀疑它可能是由于许可问题引起的 . 然后我将escript文件修改为具有相同路径,相同文件名和相同权限的shell脚本文件,如下所示:

#!/usr/bin bash
echo "test";
exit 1;

这时,我再次尝试命令,但结果正常:

测试

这就是为什么? Nagios不支持erlang脚本吗?我不相信 .