私はサーバー アプリケーションを開発していますが、最近、テスト サーバー (Debian Squeeze) でこの奇妙なエラーに遭遇しました。
popenに渡すすべての実行可能ファイルは、次のメッセージで失敗します。
sh: sort: not found // happens to any command
これは、「type」によって返されたフルパスを指すか、それを短くするかに関係なく発生します。前述のように、これは 1 つのテスト環境でのみ発生し、混乱を招きますが、同じ OS を実行しており、まったく問題はありませんでした。
Popen は明らかにshを使用してコマンドを実行していますが、コマンドライン (bash または sh) から同じコマンドを実行すると、すべて問題ありません。
前もって感謝します
(PS:このヘッドスクラッチャーを釘付けにするためだけにPython os.popenを試してみましたが、うまくいきました!)
編集 これは失敗する単純な呼び出しです:
$command="tail -10 myfile";
$handle = popen($command.' 2>&1','r');
if($handle){
while (!feof($handle)){
....//process buffer
}
}
戻り値:
sh: tail: not found