2016-10-13 15 views
0

PHP SSHでサーバに接続し、execを使用してそのサーバでPythonプログラムを実行しています。PHP execコマンドがPythonスクリプトから完全なデータを返さない

私はパテを通じてそのサーバーに接続し、コマンドラインから同じコマンドを実行すると、私は以下のようになります:

接続....評価

....

データ検索....

1)ステートメント1

2)ステートメント2

N)ステートメントN

Pythonプログラムは、他の誰かによって書かれている...

私はSSHのPHPを介して接続すると、私は$ssh->exec("ls")を実行し、サーバーコマンドのよう適切として完全な結果を得ることができますライン。しかし、私が試してみると$ssh->exec("python myscript.py -s statement 0 0 0");私は完全な結果を得ることができませんでしたが、私は出力としてランダムな線を取得します。

一般的に、誰かが同じ問題を経験し解決した場合は、教えてください。

ありがとうございました

+0

ランダムな線は何ですか?あなたは例を示すことができますか? – furas

+0

申し訳ありませんが出力を表示することはできません。しかし、 23)文23 を出力として持つことを検討してください。しかし、あなたは問題のような出産をすることになっていた – user3431704

答えて

2

出力のバッファリングが原因である可能性があります。 Pythonコマンドに-uオプションを追加してみてください。これにより、stdout、stdin、およびstderrが強制的にバッファリングされなくなります。

+0

この行のどこに? $ ssh-> exec( "python myscript.py -s文0 0 0"); – user3431704

+0

もう1つ質問したいのは、 私はあなたの方法で出力を達成すれば、正しいアーキテクチャの出力方法は何ですか? jsonやxmlのように? – user3431704

+0

'' python'の後に '-u'を追加してください:' $ ssh-> exec( "python -u myscript.py -s文0 0 0") ' – mhawke

関連する問題