在开发中,一切正常。但是,在生产环境中,控制器中的这行代码不起作用:
output = `mclines #{paramFileName} #{logFileName} #{outputFileName}`
其中 mclines 是 C 程序,其余的是文件名。 MCLens不在生产服务器上执行,但在我的笔记本电脑上执行。我不知道要解决什么。几个小时以来一直在尝试不同的事情,但事实是我很迷茫。在生产中,SSL是唯一的主要区别。
如果我在外壳上执行命令,它就会被执行。当我说它没有被执行时,因为它应该做的第一件事是在文件中打印一些信息,但它没有。服务器 - 就像我的笔记本电脑一样 - 正在运行 ubuntu,但我不知道哪些日志可以读取。系统日志没有任何用处。
欢迎任何可能导致找到罪魁祸首的想法。
确保生产服务器上确实存在mclines
,并使用mclines
可执行文件的完整路径,如
output = `/full/path/to/mclines #{paramFileName} #{logFileName} #{outputFileName}`.
参考这个
尝试将退出状态代码打印为:
$?.to_i
命令后...
或者如此链接所述,您可以随时使用 popen3/popen4 更好地处理系统命令的输入/输出......