0

在开发中,一切都很好。然而,在生产中,控制器中的这行代码不起作用:

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

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

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

欢迎任何可以找到罪魁祸首的想法。

4

2 回答 2

1

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

output = `/full/path/to/mclines #{paramFileName} #{logFileName} #{outputFileName}`. 
于 2013-01-26T17:45:43.280 回答
0

参考这个

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

$?.to_i

命令后...

或者正如在此链接中指出的那样,您始终可以使用 popen3/popen4 更好地处理系统命令的输入/输出......

于 2013-01-26T17:44:17.563 回答