Hola, tengo una aplicacion en un oracle application server version 10.1.3 que esta en un servidor centos, y necesito mandar llamar un script que ejecuta una serie de comandos. El problema es que los comandos solo los puede ejecutar root y al momento de llamar al script mi usuario es oracle, es por esto que utilizo sudo -S <comando> (oracle esta dado de alta en el archivo sudoers), pero el valor que me retorna este comando es de 1.
El script lo mando llamar con Runtime.exec de la siguiente forma:
try {
Runtime rt=Runtime.getRuntime();
String[] systemStr = {"/usr/local/bin/copyConFile"};
for(int i=0; i<systemStr.length; i++)
System.out.println(systemStr[i]);
Process p=rt.exec(systemStr);
int exitVal = p.waitFor();
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader (isr);
String line = null;
System.out.println("<OUTPUT>");
while((line = br.readLine()) != null )
{
System.out.println(line);
}
System.out.println("</OUTPUT>");
System.out.println("Process Exit Value : "+exitVal);
}
catch(Exception e) { e.printStackTrace(); }
Hice otro programa que tuviera exactamente este mismo codigo y lo ejecute en el servidor con el usuario oracle, y funciona perfectamente!!, no encuentro la razon por que desde mi aplicacion web no se ejecuta correctamente el script, cualquier sugerencia se los agradeceria mucho ya llevo como dos dias con esto y no puedo encontrar la razon del problema,
Gracias!