在轨道上执行系统命令 - 在生产中不起作用



在开发中,一切正常。但是,在生产环境中,控制器中的这行代码不起作用:

    output = `mclines #{paramFileName} #{logFileName} #{outputFileName}`

其中 mclines 是 C 程序,其余的是文件名。 MCLens不在生产服务器上执行,但在我的笔记本电脑上执行。我不知道要解决什么。几个小时以来一直在尝试不同的事情,但事实是我很迷茫。在生产中,SSL是唯一的主要区别。

如果我在外壳上执行命令,它就会被执行。当我说它没有被执行时,因为它应该做的第一件事是在文件中打印一些信息,但它没有。服务器 - 就像我的笔记本电脑一样 - 正在运行 ubuntu,但我不知道哪些日志可以读取。系统日志没有任何用处。

欢迎任何可能导致找到罪魁祸首的想法。

确保生产服务器上确实存在mclines,并使用mclines可执行文件的完整路径,如

output = `/full/path/to/mclines #{paramFileName} #{logFileName} #{outputFileName}`. 

参考这个

尝试将退出状态代码打印为:

$?.to_i

命令后...

或者如此链接所述,您可以随时使用 popen3/popen4 更好地处理系统命令的输入/输出......

相关内容

  • 没有找到相关文章

最新更新