0

開発では、すべてがうまく機能します。ただし、本番環境では、コントローラーのこのコード行は機能しません。

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

ここで、mclinesはacプログラムであり、残りはファイルの名前です。mclinesは本番サーバーでは実行されませんが、私のラップトップでは実行されます。何を修正すればい​​いのかわかりません。何時間もさまざまなことを試みてきましたが、真実は私がかなり迷っているということです。本番環境では、SSLがオンになっていますが、これが唯一の大きな違いです。

シェルでコマンドを実行すると、実行されます。私がそれが実行されないと言うとき、それが最初にすべきことはファイルにいくつかの情報を印刷することであり、それはそうではないからです。サーバーは-私のラップトップとして-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 に答える