Estoy desarrollando una aplicación de servidor y recientemente encontré este extraño error en un servidor de prueba (Debian Squeeze).popen falla con "sh: <command>: no encontrado"
Cada ejecutable que pase a popen falla con un error:
sh: sort: not found // happens to any command
Esto ocurre independientemente de si señalo la ruta completa devuelto por "tipo" o que sea breve. Como se mencionó anteriormente, esto sucede en un solo entorno de prueba, para agregar confusión, estoy ejecutando el mismo sistema operativo y no tuve ningún problema en absoluto.
Popen es aparentemente utilizando sh para ejecutar comandos, pero si corro el mismo comando a través de la línea de comandos (bash o sh), todo está bien
Gracias de antemano
(PD: incluso ! Python trató simplemente os.popen para clavar este rascador de cabeza, y funciona)
Editar esto es una llamada simple que falla:
$command="tail -10 myfile";
$handle = popen($command.' 2>&1','r');
if($handle){
while (!feof($handle)){
....//process buffer
}
}
devuelve:
sh: tail: not found
Publique la llamada real, y si usa alguna variable, muestre cómo se generan. –
¿El resultado es el mismo usando la ruta completa del binario? (Quiero decir: whereis tail) – Cesar
sí, siempre que se ejecute a través de popen, sh devuelve ese mensaje de error ... – smallmeans