cómo pasar el usuario y pwd a través de la runtime.exec () en java

Yogev Levi:

Estoy intentando ejecutar un comando simple usando Java 1.8 y el programa se ejecuta sistema operativo Solaris 11. Mis bajo un usuario en particular y el comando debe ejecutarse en superusuario

Este es el comando:

Runtime.getRuntime().exec("su - root -c 'pargs -l 1111'");

Si me quedo en el comando deberá su excelente trabajo y pido contraseña y wen i Introduzca la contraseña voy a obtener el resultado.

el problema es wen lo funciono en Java aquí es mi código

Process proc = Runtime.getRuntime().exec("su - root -c 'pargs -l 1111'");
PrintWriter out = new PrintWriter(new OutputStreamWriter(proc.getOutputStream()));
out.println(password);
out.flush();
int exitCode= proc.waitFor();
System.out.println(exitCode);//exitCode = 1
BufferedReader pArgs= new BufferedReader( new InputStreamReader(proc.getInputStream()));
if((line=pArgs.readLine()) != null)
{
    //do something
}
else
{
    //something not working = ERROR 
}

Creo que la línea igual a cero porque algo en el conjunto de la contraseña no es correcta bate no estoy seguro

lo que estoy haciendo mal?

Yogev Levi:

Muchas gracias por todas las respuestas. Pero mi solución fue un poco diferente. Se decidió utilizar un archivo externo que podrían ser escritos y leídos de ambos procesos. Todo el objetivo era hacer un apretón de manos de nuevo en caso de que el proceso que se ejecuta en la raíz caerá (watchdog).

Así que ahora no hay necesidad de utilizar el comando

Runtime.getRuntime().exec("su - root -c 'pargs -l 1111'");

Cuando el proceso de raíz comienza a funcionar, se registra un compás en un archivo. y si el proceso del usuario (que lee el archivo cada X tiempo) determina que la firma ha cambiado, que va a hacer un apretón de manos de nuevo.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=119863&siteId=1
Recomendado
Clasificación